ホームページ  >  記事  >  バックエンド開発  >  PHPオブジェクト指向の3つの基本特性と5つの基本原則

PHPオブジェクト指向の3つの基本特性と5つの基本原則

不言
不言オリジナル
2018-04-10 16:07:241188ブラウズ

この記事では、オブジェクト指向 PHP の 3 つの基本機能と 5 つの基本原則について説明します。必要な方は、この記事の内容を参照してください。


3 つの機能とは、次のとおりです: カプセル化、継承、ポリモーフィズム


いわゆる

カプセル化とは、客観的なものを抽象クラスにカプセル化することを意味し、クラスは信頼できるクラスまたはオブジェクトにのみデータとメソッドの操作を許可し、信頼できないクラスまたはオブジェクトからは情報を隠すことができます。

カプセル化はオブジェクト指向の特徴の 1 つであり、オブジェクトとクラスの概念の主な機能です。 簡単に言うと、クラスはデータと、これらのデータを操作するコードをカプセル化する論理エンティティです。オブジェクト内では、一部のコードまたは一部のデータはプライベートにすることができ、外部からアクセスすることはできません。このように、オブジェクトは内部データにさまざまなレベルの保護を提供し、プログラムの無関係な部分が誤って変更されたり、オブジェクトのプライベート部分が誤って使用されたりすることを防ぎます。

いわゆる

継承 は、特定の型のオブジェクトが別の型のオブジェクトのプロパティを取得できるようにするメソッドを指し、階層分類の概念をサポートします。

継承とは、元のクラスを書き直すことなく、既存のクラスのすべての機能を使用し、これらの機能を拡張する機能を指します。 継承によって作成された新しいクラスを「サブクラス」または「派生クラス」と呼び、継承されたクラスを「基本クラス」、「親クラス」、または「スーパークラス」と呼びます。相続のプロセスは、一般から特殊へのプロセスです。継承を実現するには「継承」と「合成」によって実現できます。継承の概念を実装するには、実装の継承とインターフェイスの継承の 2 種類の方法があります。実装の継承は、追加のコーディングなしで基本クラスのプロパティとメソッドを直接使用できる機能を指します。インターフェイスの継承は、プロパティとメソッドの名前のみを使用できる機能を指しますが、サブクラスは実装を提供する必要があります。

ポリモーフィズム

は、クラス インスタンスの同じメソッドが異なる状況で異なる表現を持つことを指します。

ポリモーフィズムにより、異なる内部構造を持つオブジェクトが同じ外部インターフェイスを共有できるようになります。これは、異なるオブジェクトに対する特定の操作は異なりますが、それら (それらの操作) は共通のクラスを通じて同じ方法で呼び出すことができることを意味します。

5つの基本原則

単一責任原則 SRP(Single Responsibility Principle)

とは、クラスの機能は単一でなければならず、すべてを包括することはできないことを意味します。人間と同じように、あまりにも多くの仕事を割り当てられるべきではありません。そうしないと、一日中忙しくても効率は高くありません。

オープンクローズ原則 OCP (Open-Close Principle)

モジュールは拡張性の観点からオープンであり、変更可能性の観点からクローズされている必要があります。たとえば、ネットワーク モジュールには元々サーバー側の機能しかありませんでしたが、クライアント側の機能を追加する必要がある場合、サーバー側の機能のコードを変更することなく、クライアント側の機能の実装コードを追加できるようになります。設計の最初に追加する必要があり、サーバーとクライアントを分離し、パブリック部分を抽象化する必要があります。

置換原理 (Liskov 置換原理 LSP)

サブクラスは親クラスを置き換えて、親クラスが出現できる場所であればどこにでも出現できる必要があります。例えば、会社で年に一度のパーティーを開催する場合、社員全員が抽選に参加できるので、古参社員も新入社員も、本社社員も駐在員も関係なく抽選に参加できるはずです。会社が調和しなくなります。

依存性反転原理 DIP (依存性反転原理 DIP) 具体物は抽象物に依存し、上位層は下位層に依存します。

B が A より下位のモジュールであるとします。しかし、B は A の関数を使用する必要があります。このとき、B は A の具象クラスを直接使用すべきではありません。代わりに、B は抽象インターフェイスを定義し、A はこれを実装する必要があります。抽象化インターフェイスの場合、B はこの抽象インターフェイスのみを使用します。これにより、依存関係の反転の目的が達成され、B は A への依存性も解放されます。次に、A は、B によって定義された抽象インターフェイスに依存します。 B が A の実装にも直接依存している場合、上位レベルのモジュールを通じて下位レベルのモジュールに依存することを回避するのは困難であり、循環依存関係が発生する可能性があります。よくある問題は、モジュール A をコンパイルするときにモジュール B の cpp ファイルを直接インクルードする必要があり、B をコンパイルするときに A の cpp ファイルも直接インクルードする必要があることです。

インターフェイス分離原則 ISP

モジュールは、特定のクラスを通じて強く結合するのではなく、抽象インターフェイスを通じて分離する必要があります

関連推奨事項:

PHP の 5 つのオブジェクト指向原則の詳細な説明: オープン-クローズ原則

PHP の 5 つのオブジェクト指向原則とインターフェイス分離の原則の詳細な説明

PHP オブジェクト指向プログラミングの簡単な説明

以上がPHPオブジェクト指向の3つの基本特性と5つの基本原則の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。