ホームページ バックエンド開発 PHPチュートリアル PHP 5.0 におけるポリモーフィズムの実装スキームの簡単な分析_PHP チュートリアル

PHP 5.0 におけるポリモーフィズムの実装スキームの簡単な分析_PHP チュートリアル

Jul 15, 2016 pm 01:22 PM
php 存在する ポリモーフィズム 成し遂げる 物体 意思 プラン コンセプト 話し合う デザイン のために

要約: この記事では、ポリモーフィズムの概念とオブジェクト指向設計におけるその応用について説明し、PHP5 でのポリモーフィズムの使用方法とその利点と欠点についても分析します。

遅延バインディングのサポートは、PHP の最新リリース バージョンに実装されました。もちろん、遅延バインディング機能を使用する場合にはまだ多くの問題があります。古いバージョンの PHP を使用している場合 (私のサーバーは PHP 5.0.1 を実行しています)、遅延バインディングのサポートが不足していることがわかります。したがって、この記事のコードは、お使いの特定のバージョンの PHP 5 では動作しない可能性があることに注意してください。

1. PHP 5 とポリモーフィズム

この記事では、オブジェクト指向プログラミングの最も重要な部分の 1 つであるポリモーフィズムの設計について説明したいと思います。問題を説明するために、私は PHP 5 を使用しています。読み進める前に、この記事は完全に PHP に関するものではないことを明確にしてください。この言語は過去 2 つのメジャー バージョンにわたって急速な開発で大きな進歩を遂げてきましたが、オブジェクトのサポートが C++ や Java コースのようなより成熟した言語に匹敵するまでにはまだ時間がかかります。

あなたがオブジェクト指向プログラミングの初心者である場合、ポリモーフィズムのこの部分は特別であり、一度理解すると決して忘れないため、この記事はあなたには適していないかもしれません。オブジェクト プログラミングと設計について少し学びたいが、「オブジェクトはポリモーフィックである」と言われることが何を意味するのかよくわからない場合は、この記事が最適です。

この記事を読み終えるまでに、ポリモーフィズムとは何か、それをオブジェクト指向設計に適用する方法を理解し、PHP 5 でのオブジェクト プログラミングの長所と短所を理解できるようになります。

2. ポリモーフィズムとは何ですか?

dictionary.com のポリモーフィズムの定義は、「既存の基本的な違いなしに、独立した組織または同じ組織内で、異なる形式、段階、またはタイプで現れること」です。ポリモーフィズムは、同じオブジェクトを複数の状態またはフェーズを通じて記述するプログラミング方法と考えることができます。実際、その本当の意味は、実際の開発では、インターフェイスまたは基本クラスのプログラミングにのみ集中すればよく、オブジェクトが属する特定のクラス (クラス) について心配する必要がないことです。

デザインパターンに慣れていれば、たとえ予備知識だけでも、この概念は理解できるでしょう。実際、ポリモーフィズムはパターンベースの設計プログラミングにおける最大のツールである可能性があります。これにより、同様のオブジェクトを論理的な方法で編成できるため、コーディング時にオブジェクトの特定のタイプを気にする必要がなくなり、さらに、必要なインターフェイスまたは基本クラスをプログラムするだけで済みます。アプリケーションが抽象的であればあるほど、柔軟性は高まります。ポリモーフィズムは動作を抽象化する最良の方法の 1 つです。

例えば、personというクラスを考えてみましょう。 David、Charles、Alejandro というクラスを使用して person をサブクラス化できます。 Person には抽象メソッド AcceptFeedback() があり、すべてのサブクラスはこのメソッドを実装する必要があります。これは、基本 Person クラスのサブクラスを使用するコードはどれも AcceptFeedback() メソッドを呼び出すことができることを意味します。オブジェクトがデビッドであるかアレハンドロであるかを確認する必要はありません。それが人であることがわかれば十分です。結果として、コードは「最小公倍数」である Person クラスにのみ焦点を当てる必要があります。

この例の Person クラスはインターフェースとして作成することもできます。もちろん、上記のものと比較するといくつかの違いがあります。主に、インターフェイスは動作を与えず、一連のルールを決定するだけです。 Person インターフェイスでは「AddFeedback() メソッドをサポートする必要がある」必要がありますが、一方、Person クラスでは AddFeedback() メソッドのデフォルト コードを提供できます。これについての理解は、「AddFeedback() のサポートを選択しない場合は、デフォルトの実装を提供する必要があります。「インターフェイスまたは基本クラスの選択方法については、この記事の主題ではありませんが、一般に、基本クラスを通じてデフォルト メソッドを実装する必要があります。クラスが実装する必要な機能セットの概要を簡単に説明できる場合は、インターフェイスを使用することもできます。

3. ポリモーフィックデザインの適用

引き続き Person 基本クラスの例を使用しますが、今度は非ポリモーフィック実装を分析してみましょう。次の例では、さまざまなタイプの Person オブジェクトを使用していますが、これは非常に不満足なプログラミング方法です。実際の Person クラスは省略されていることに注意してください。これまでのところ、コード呼び出しの問題のみに注目してきました。

以下は引用部分です:

$name = $_SESSION['name'];

$myperson = person::GetPersonal($name);

switch (get_class($myperson); ){

case 'David' :

$myperson->AddFeedback('Great Article!', 'Some Reader', date('Y-m-d'))

case 'Charles':

$ myperson- >フィードバック[] = array('Some Reader', 'Great Editing!');

break;

case 'Alejandro' :

$myperson->Feedback->Append('Awesome JavaScript!');ブレーク;

デフォルト:

$myperson->AddFeedback('やった!')

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446954.html技術記事要約: この記事では、ポリモーフィズムの概念とオブジェクト指向設計におけるその応用について説明し、PHP5 でのポリモーフィズムの使用方法とその利点と欠点についても分析します。 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)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

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:27 PM

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

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

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

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

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:26 PM

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

See all articles