目次
5つの基本原則" >5つの基本原則
単一責任原則 SRP(Single Responsibility Principle)
オープンクローズ原則 OCP (Open-Close Principle)
依存性反転原理 DIP (依存性反転原理 DIP) 具体物は抽象物に依存し、上位層は下位層に依存します。
ホームページ バックエンド開発 PHPチュートリアル PHPオブジェクト指向の3つの基本機能と5つの基本原則

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

Apr 10, 2018 pm 04:15 PM
php


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

カプセル化と継承、ポリモーフィズムです。

いわゆるカプセル化

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

カプセル化はオブジェクト指向の特徴の 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オブジェクト指向の3つの基本機能と5つの基本原則の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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