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

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
