PHP で一般的に使用される 3 つの設計パターン、シングルトン設計パターン、ファクトリ設計パターン、およびオブザーバー設計パターンを紹介します。
この記事では、PHP で最も一般的に使用される 3 つの デザイン パターン、つまりシングルトン デザイン パターン、ファクトリ デザイン パターン、オブザーバー デザイン パターンについて簡単に紹介します。これらはすべて個人的な経験の要約ですので、気に入っていただければ幸いです
この記事は、PHP で一般的に使用される 3 つのデザイン パターンについてのメモと要約です。 . なぜデザインパターンが必要なのでしょうか?その誕生は私たち開発者にとってどのような役割と意味を持っているのでしょうか?
iOSを開発している人はデザインパターンに精通していると思いますよね?たとえば、シングルトン設計パターン、ファクトリ設計パターン、オブザーバー パターン、MVC フレームワーク設計パターンなどです。
次に、PHP で最も一般的に使用される 3 つのデザイン パターン、シングルトン デザイン パターン、ファクトリー デザイン パターン、オブザーバー デザイン パターンを学びましょう。
単一ケース設計パターン
いわゆる単一ケースパターンは、このクラスのインスタンスがアプリケーション内に一度作成されると、常にメモリ内に存在することを意味します。
シングルトン設計パターンは、データベース クラスの設計でよく使用されます。シングルトン モードは、複数のデータベース接続が開かれないようにするために、データベースに 1 回だけ接続するために使用されます。
シングルトン クラスは次の特性を持つ必要があります:
シングルトン クラスは直接インスタンス化によって作成することはできませんが、クラス自体によってのみインスタンス化できます。したがって、このような制限効果を得るには、コンストラクターをプライベートとしてマークし、クラスがインスタンス化されないようにする必要があります。
クラスインスタンスを保存し、インスタンスにアクセスできるパブリック静的メソッドを公開するには、プライベート静的メンバー変数が必要です。
PHP では、他の人がシングルトン クラス インスタンスを複製できないようにするために、通常、空のプライベート clone()
メソッドが提供されます。
シングルトン パターンの例:
<?php /** * Singleton of Database */ class Database { // We need a static private variable to store a Database instance. privatestatic $instance; // Mark as private to prevent it from being instanced. privatefunctionconstruct() { // Do nothing. } privatefunctionclone() { // Do nothing. } publicstatic functiongetInstance() { if (!(self::$instanceinstanceofself)) { self::$instance = newself(); } returnself::$instance; } } $a =Database::getInstance(); $b =Database::getInstance(); // true var_dump($a === $b);
ファクトリ デザイン パターン
ファクトリ デザイン パターンは、さまざまな入力パラメーターまたはアプリケーション構成に基づいて、対応するクラスをインスタンス化して返すように特別に設計されたクラスを作成するためによく使用されます。
例を見てみましょう。長方形と円が同じメソッドを持っているとします。次に、基本クラスが提供する API を使用してインスタンスを作成すると、それらはすべてパラメータを渡すことで、対応するクラスのインスタンスを自動的に作成します。周囲と面積。
<?php interfaceInterfaceShape { functiongetArea(); functiongetCircumference(); } /** * 矩形 */ class Rectangle implementsInterfaceShape { private $width; private $height; publicfunctionconstruct($width, $height) { $this->width = $width; $this->height = $height; } publicfunctiongetArea() { return $this->width* $this->height; } publicfunctiongetCircumference() { return 2 * $this->width + 2 * $this->height; } } /** * 圆形 */ class Circle implementsInterfaceShape { private $radius; functionconstruct($radius) { $this->radius = $radius; } publicfunctiongetArea() { return M_PI * pow($this->radius, 2); } publicfunctiongetCircumference() { return 2 * M_PI * $this->radius; } } /** * 形状工厂类 */ class FactoryShape { publicstatic functioncreate() { switch (func_num_args()) { case1: return newCircle(func_get_arg(0)); case2: return newRectangle(func_get_arg(0), func_get_arg(1)); default: # code... break; } } } $rect =FactoryShape::create(5, 5); // object(Rectangle)#1 (2) { ["width":"Rectangle":private]=> int(5) ["height":"Rectangle":private]=> int(5) } var_dump($rect); echo "<br>"; // object(Circle)#2 (1) { ["radius":"Circle":private]=> int(4) } $circle =FactoryShape::create(4); var_dump($circle);
オブザーバー デザイン パターン
オブザーバー パターンは、適切に使用するとプログラムに大きな利便性をもたらしますが、不適切に使用すると、保守が困難なアイデアを将来の世代に与えることになります。
オブザーバーパターンとは何ですか?オブジェクトは、別のオブジェクト (オブザーバー) が自分自身を登録できるようにするメソッドを提供することによって、自分自身を監視可能にします)。監視可能なオブジェクトが変化すると、登録されたオブザーバーにメッセージが送信されます。これらのオブザーバーは、この情報を使用して、監視可能なオブジェクトとは独立して操作を実行します。その結果、オブジェクトは理由を理解することなく相互に通信できるようになります。オブザーバー パターンはイベント システムです。つまり、このパターンにより、クラスが別のクラスの状態を監視できるようになり、監視しているクラスは通知を受け取り、対応するアクションを実行できます。コンポーネント間の密結合を回避する機能を備えています。以下の例を見れば理解できるでしょう。
りー以上がPHP で一般的に使用される 3 つの設計パターン、シングルトン設計パターン、ファクトリ設計パターン、およびオブザーバー設計パターンを紹介します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
