目次
1.1 ファクトリ モード、ファクトリ メソッドまたはクラスは、コード内で直接 new する代わりにオブジェクトを生成します
1.2 シングルトン モード、そのため、特定のクラスのオブジェクトを 1 つだけ作成できます
1. 複数回使用する必要がある同じオブジェクトを登録し、エイリアスを追加して一律に呼び出す(例:機械を購入する場合、全員が工場に買いに行くのではなく、工場が認めた機関に行かなければなりません。
ホームページ バックエンド開発 PHPチュートリアル php 3つの基本デザインパターンの組み合わせ

php 3つの基本デザインパターンの組み合わせ

Jun 23, 2016 pm 01:31 PM

1.1 ファクトリ モード、ファクトリ メソッドまたはクラスは、コード内で直接 new する代わりにオブジェクトを生成します

    class Factory{              static function getDatabase(){            return new Mysql($host, $user, $pass);        }    }    #使用    Factory::getDatabase();
ログイン後にコピー

1.2 シングルトン モード、そのため、特定のクラスのオブジェクトを 1 つだけ作成できます

  • 1 プライベート静的オブジェクト変数があります。 、このクラスのオブジェクトを保存するために特別に使用されます
  • 2. オブジェクトを作成するための静的メソッドがあります
  • 3. 外部の新しいオブジェクトを防ぐための private コンストラクターがあります
  • 4. クローンが false を返すのを防ぐための clone メソッドがあります。参考記事一覧 モード例
    class Database {      //单一对象属性     private static $instance;      //定义一些全局变量需要存放属性     private $props = array();      //私有的构造方法     private function __construct(){          echo 'into construct! 该类不允许外部创建对象 ';      }      //返回单一实例     public static function getInstance () {          //判断是否已经有了实例化的对象         if(empty(self::$instance)) {              //可以被override (动态解析)             self::$instance = new static();              //不可以被override (静态解析)             //self::$instance = new self();         }          return self::$instance;      }      public function __clone(){        return '该类禁止clone';    }    //设置属性     public function setProperty ( $key, $value) {          $this->props[$key] = $value;      }      //获取属性     public function getPeoperty ( $key ) {          return $this->props[$key];      }  }  //使用 $dbObj = Database::getInstance();  $dbObj->setProperty('root_path','/www');  $dbObj->setProperty('tmp_path','/tmp');  //接下来删除该单例对象,如果还能获取到刚刚添加的属性,说明使用的是同一个对象 unset($dbObj);  $dbObj = Database::getInstance();  echo $dbObj->getPeoperty('root_path');  echo $dbObj->getPeoperty('tmp_path');  
    ログイン後にコピー
    1.3 登録モード、オブジェクトのグローバル共有と交換

    1. 複数回使用する必要がある同じオブジェクトを登録し、エイリアスを追加して一律に呼び出す(例:機械を購入する場合、全員が工場に買いに行くのではなく、工場が認めた機関に行かなければなりません。

  • 2. 次回オブジェクトを使用したいときは、その必要はありません。ファクトリーまたはシングルトン モードを使用します。レジスターから直接取得するだけです。ブロガー。
  • このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットな記事タグ

    メモ帳++7.3.1

    メモ帳++7.3.1

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

    SublimeText3 中国語版

    SublimeText3 中国語版

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

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

    11ベストPHP URLショートナースクリプト(無料およびプレミアム)

    Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

    Instagram APIの紹介

    Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

    Laravelでフラッシュセッションデータを使用します

    Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

    Laravelテストでの簡略化されたHTTP応答のモッキング

    PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

    PHPのカール:REST APIでPHPカール拡張機能を使用する方法

    LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

    LaravelのバックエンドでReactアプリを構築する:パート2、React

    Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

    Codecanyonで12の最高のPHPチャットスクリプト

    Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

    Laravelの通知

    See all articles