ホームページ > バックエンド開発 > PHPチュートリアル > PHP 学習ノート -- オブジェクト指向の核となる概念

PHP 学習ノート -- オブジェクト指向の核となる概念

WBOY
リリース: 2016-07-29 08:57:11
オリジナル
831 人が閲覧しました
継承とポリモーフィズムはどちらもクラスを再利用します。1 つはクラス レベルの再利用で、もう 1 つはメソッド レベルの再利用です。 クラスの結合と継承。 低結合、デカップリング、密結合。 継承に関する問題:
1. 継承によりカプセル化が破壊されます。
2. 継承は密結合です。
3. 継承と拡張は複雑です。
4. 継承を不適切に使用すると、現実世界のロジックに違反する可能性があります。
結合オブジェクトを作成する場合、結合ではローカルオブジェクトを1つずつ作成する必要があり、ある程度のコードが追加されますが、継承ではサブクラスが親クラスのメソッドを自動的に持つため、この手順は必要ありません。 継承の使用方法:
1. 継承されたクラス専用に慎重に設計します。継承ツリーの抽象化層は、通常は 3 層以下にする必要があります。
2. 継承するように特別に設計されていないクラスの場合は、継承を禁止します。つまり、final 修飾子を使用します。 Final 修飾子を使用すると、重要なメソッドが不正に上書きされるのを防ぐだけでなく、エディターに最適化を見つける機会も与えられます。
3. コードの再利用性を向上させるために、組み合わせ関係の使用を優先します。
4. サブクラスは特別なタイプであり、親クラスの役割だけではありません。
5. 親クラスの関数をオーバーライドまたは無効にするのではなく、サブクラスの拡張。
6. 基礎となるコードは主に組み合わせを使用し、トップレベル/ビジネス層のコードは主に継承を使用します。最下位レベルで組み合わせを使用すると、効率が向上し、オブジェクトの肥大化を回避できます。最上位コードに継承を使用すると、柔軟性が向上し、ビジネスでの使用がより便利になります。
多重継承メカニズム: 特性。 ポリモーフィズム:
意味: 同じクラスのオブジェクトが同じメッセージを受信すると、異なる結果が得られます。そしてそのニュースは予想外のものだった。
オーバーロードはオブジェクト指向のものではなく、ポリモーフィズムの一種であるポリモーフィズムと同じ概念ではありません。
ポリモーフィズムは、同じオブジェクトを複数の状態またはフェーズを通じて記述するプログラミング方法です。その本当の意味は、実際の開発では、インターフェイスまたは基本クラスのプログラミングのみを考慮すればよく、オブジェクトが属する特定のクラスについては考慮する必要がないということです。
ポリモーフィズムの実装:
1. ポリモーフィズムとは、実行時の同じタイプのオブジェクトの具体化を指します。
2. PHP 言語は型付けが弱いため、ポリモーフィズムの実装がより簡単かつ柔軟になります。
3. 型変換はポリモーフィズムではありません。
4. PHP では、親クラスと子クラスは「継父」と「継子」の関係とみなされますが、継承関係はありますが、血縁関係はありません。したがって、サブクラスを親クラスに上方変換することはできず、それによってポリモーフィズムの最も典型的な特徴が失われます。
5. ポリモーフィズムの本質は if...else ですが、実装のレベルが異なります。
インターフェースは、「物」の機能を記述するための一連の仕様を定義し、「物」が実際に使用可能になりたい場合は、これらの基本機能を実装する必要があります。 抽象クラスとインターフェイス。 ある意味では、トレイトとインターフェイスは両方とも「多重継承」の偽装実装です。 インターフェースのいくつかの概念:
1. インターフェースは仕様および規約として存在します。仕様として、インターフェイスは可用性を保証する必要があり、契約として、インターフェイスは制御性を保証する必要があります。
2. インターフェイスは単なる宣言です。インターフェイス キーワードを使用したら、それを実装する必要があります。これは、プログラマ (外部インターフェイス) またはシステム (内部インターフェイス) によって実装できます。インターフェース自体は何もしませんが、何ができるかを教えてくれます。
3. PHP のインターフェースには 2 つの欠点があります。1 つは契約上の制限がないこと、もう 1 つは十分な内部インターフェースがないことです。
リフレクション:
オブジェクト指向プログラミングでは、オブジェクトには内省する機能が与えられ、この内省プロセスがリフレクションです。
熟考、直観的理解は、到着場所に基づいて出発点とソースを見つけることです。
リフレクションとは、PHP の実行状態で PHP プログラムの分析を拡張し、クラス、メソッド、プロパティ、パラメーターなどに関するコメントを含む詳細情報をエクスポートまたは抽出することを指します。この動的に情報を取得し、オブジェクトのメソッドを動的に呼び出す機能をリフレクションAPIと呼びます。

リフレクションの役割: ドキュメントの生成に使用できます。 (フック?)

その用途には、プラグインの自動ロード、ドキュメントの自動生成が含まれ、PHP 言語の拡張にも使用できます

PHP には Token 関数があり、これを通じていくつかのリフレクション機能を実現できます。機構。 なぜリフレクションを使用するのですか?反省の必要性とは何でしょうか?

リフレクションの目的は、未知のアプリケーションを拡張することです


例外とエラーの処理:
例外とエラーの概念は異なります。

上記は、オブジェクト指向の核となる概念である PHP 学習ノートを内容の側面も含めて紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート