ホームページ >バックエンド開発 >PHPチュートリアル >phpオブジェクト指向の3大特徴

phpオブジェクト指向の3大特徴

angryTom
angryTomオリジナル
2019-08-22 11:06:244271ブラウズ

phpオブジェクト指向の3大特徴

オブジェクト指向 は、構造化設計手法に多くの問題があったときに登場しました。問題を解決するための構造化設計法の基本戦略は、問題領域を機能的な観点から検討することです。ここでは、PHP の 3 つの主要なオブジェクト指向機能を紹介します。

推奨チュートリアル: PHP ビデオ チュートリアル

##主要な 3 つの機能: カプセル化と継承、ポリモーフィズム

カプセル化

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

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

継承

いわゆる継承とは、特定の型のオブジェクトがその型のオブジェクトのプロパティを取得できるようにするメソッドを指します。別のタイプであり、分類概念をサポートしています。

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

ポリモーフィズム

いわゆるポリモーフィズムとは、クラス インスタンスの同じメソッドが異なる状況で異なる表現を持つことを意味します。

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

5つの基本原則

単一責任原則SRP(Single Responsibility Principle) これは、クラスの関数は単一である必要があり、すべてを包含することはできないことを意味します。人間と同じように、あまりにも多くの仕事を割り当てられるべきではありません。そうしないと、一日中忙しくても効率は高くありません。

オープンクローズ原則 OCP(オープンクローズ原則) モジュールは拡張性の観点からオープンである必要があり、またモジュールの観点からもオープンである必要があります。変更可能性は閉じられています。たとえば、ネットワーク モジュールには当初サーバー側の機能しかありませんでしたが、現在はクライアント側の機能を追加する必要があります。

そうすれば、サーバー関数のコードを変更することなく、クライアント関数の実装コードを追加できるようになりますので、設計の初めにサーバーとクライアントを分離し、共通部分を分離する必要があります。抽象化された。

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

置換原理 (Liskov 置換原理 LSP) B は A よりも下位モジュールですが、B は関数を使用する必要があると仮定します。 A の場合、この時点では、B は A の具象クラスを直接使用すべきではありません: 代わりに、B は抽象インターフェイスを定義し、A はこの抽象インターフェイスを実装する必要があります。B はこの抽象インターフェイスのみを使用します: これにより、依存関係の逆転の目的が達成されます。 B また、A への依存関係も削除されます。次に、A は、B によって定義された抽象インターフェイスに依存します。上位モジュールを介して下位モジュールに依存することを避けるのは難しく、B も A の実装に直接依存すると、循環依存関係が発生する可能性があります。よくある問題は、モジュール A をコンパイルするときにモジュール B の cpp ファイルを直接インクルードする必要があり、B をコンパイルするときに A の cpp ファイルも直接インクルードする必要があることです。

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

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

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