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

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

Jul 29, 2016 am 08:57 AM
exception final interface php traits

継承とポリモーフィズムはどちらもクラスを再利用します。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 チュートリアルに興味のある友人に役立つことを願っています。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

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

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

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

See all articles