多くの言語は本質的にオブジェクト指向ですが、PHP ではそのような機能を導入するのに数年かかりました。多くの人は、言語にオブジェクト指向機能を追加するというこれまでの試みは失敗したと信じています。バージョン 4 は非常に基本的なオブジェクト指向プログラミング (OOP) の概念を提供しますが、次のようないくつかの欠点があります。
・非公式オブジェクト参照メソッド
· フィールドとメソッドのスコープ (パブリック、プライベート、保護、抽象) を設定することはできません。
· 名前付きコンストラクターや標準規約はありません
· オブジェクトのデストラクターが不足しています。
· オブジェクトのコピー機能がありません。
· インターフェイスのサポートが不足しています。
幸いなことに、PHP5 では上記の欠点がすべて解消され、元の実装が大幅に改善され、多くの新しい OOP 機能が追加されています。
OOP の利点
オブジェクト指向プログラミングの誕生は、開発パラダイムにおける大きな変化であり、プログラミングの焦点がアプリケーションのロジックからデータに戻りました。言い換えれば、OOP はプログラミングの手続き的なイベントから最終的なモデリングに焦点を移しました。 . 実体。これにより、アプリケーションが私たちの周囲の現実世界に近づきます。
パッケージ
プログラマーは一般に強い好奇心を持っており、物事を分解して、内部のすべての小さな部品がどのように連携して機能するかを理解することを好みます。精神的には満たされますが、物事の内部の仕組みを深く理解する必要はありません。たとえば、何百万人もの人が毎日コンピューターを使用していますが、自動車やテレビなど、多くのありふれたものと同様に、その仕組みを本当に理解している人はほとんどいません。内部構造はインターフェイスを使用することで無視できます。たとえば、ラジオのダイヤルを回すとチャネルが変更されることは知っていますが、実際には、特定の周波数で送信される信号を聞くようにラジオに指示していることは、たとえ復調器を介して行われていないとしても知らないかもしれません。インターフェイスはこれらの詳細を隠し、カプセル化と呼ばれるよく知られたインターフェイスを通じてユーザーを実際のアプリケーションの内部動作から分離するため、プロセスを理解することも、無線の使用にも影響しません。
オブジェクト指向プログラミングは、アプリケーションの内部動作を隠すという概念をさらに一歩進め、すべてのアプリケーション コンポーネントにアクセスできる明確に定義されたインターフェイスを確立します。 OOP の考え方を持つ開発者は、多くの詳細に行き詰ることはなく、オブジェクトと呼ばれる明確に定義されたインターフェイスと対話するコンポーネントを設計します。これらのコンポーネントは、緊密に結合されるか、他のコンポーネントとは独立して結合されます。オブジェクトはクラスと呼ばれるテンプレートを通じて作成されます。クラスはエンティティが持つべきデータと動作を定義するために使用されます。このアプローチには次の利点があります。
· ユーザーはオブジェクトのインターフェイスを通じてのみオブジェクトと対話するため、開発者はオブジェクトのユーザーに影響を与えることなくアプリケーションの実装を変更できます。
· アプリケーションとユーザーの対話を制御できるため、ユーザー エラーの可能性が減ります。
継承 www.2cto.com
私たちの周囲の環境にある多くのもの (人を含む) は、明確に定義された一連のルールを使用してモデル化できます。従業員の概念を見てみましょう。すべての従業員には、名前、従業員番号、給与などの共通のプロパティがあります。しかし、店員、スーパーバイザー、レジ係、社長など、叱らないタイプの従業員もたくさんいます。各タイプの従業員は、一般的な従業員の定義で定義されたプロパティのスーパーセットを所有します。オブジェクト指向の用語では、これらの従業員タイプは、この定義内のすべてのプロパティと動作を含む一般的な従業員定義を継承します。たとえば、「スタッフ」タイプは、別のより具体的なクラスによって継承されます。日勤スタッフと夜勤スタッフに継承されます。日勤スタッフと夜勤スタッフの両方が、従業員定義とスタッフ定義のすべてのプロパティを継承します。この概念に基づいて、別の「person」クラスを作成し、「employee」クラスを「person」クラスのサブクラスにすることができます。その結果、従業員クラスとその派生クラス (事務員、レジ係、CEO など) がすべて作成されます。 ) は、「human」クラスで定義されたすべてのプロパティと動作を直ちに継承します。
オブジェクト指向の開発手法は継承の概念に基づいており、適切に設計されたクラスを複数のアプリケーションで使用できるようにするため、コードの再利用性が向上します。これは、これらのクラスが適切に設計されているという事実を指します。再利用できるほど十分に抽象的である]。
ポリモーフィック
ポリモーフィズムとはギリシャ語の用語で、本来の意味は「複数の形式を持つ」という意味です。簡単に言えば、ポリモーフィズムとは、クラスが使用されるコンテキストに基づいてクラスの性質や動作を再定義または変更する OOP の機能を指します。
引き続き例を使用して説明します。従業員クラスの定義に「チェックイン」と動作があるとします。スタッフの場合、この動作は具体的には時計を使用して出勤することであるとします。他の種類の従業員の場合は、 「プログラマー」など「サインインはネットワーク経由で実行できます。どちらのクラスもこの動作を従業員クラスから継承しますが、具体的な実装は「チェックイン」が実装されるコンテキストによって異なります。これがポリモーフィズムの力です。
http://www.bkjia.com/PHPjc/477844.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/477844.html技術記事多くの言語は本質的にオブジェクト指向ですが、PHP ではそのような機能を導入するのに数年かかりました。多くの人は、言語にオブジェクト指向機能を追加するというこれまでの試みは失敗したと信じています。みんな…