ホームページ  >  記事  >  バックエンド開発  >  PHP デザイン パターン シングルトン パターン

PHP デザイン パターン シングルトン パターン

不言
不言オリジナル
2018-04-18 11:42:481552ブラウズ

この記事では、PHP のデザイン パターンのシングルトン モードを紹介します。必要な方は参考にしてください。いくつかの情報を読めば、理解するのは難しくありません。最も基本的なアプリケーションはタスク マネージャーです。

実際、私の個人的な理解では、は 2 つ目の同一のオブジェクト
を作成することはできません。
オブジェクトが作成されているかどうかをプログラムが内部で判断します。作成されていない場合は、それを直接使用します。 次のような簡単な記録を作成しました:

<?php  
     
    
/** Singleton  
 *  单例模式类 
 *  @static $obj 
 *  @var $hero 
 */   
class Singleton    
{    
    // 创建静态对象变量    
    private static $obj = null;    
    
    // 当前对象里面的人物  
    public $hero;    
  
    //实例化对象变量方法,供外部调用    
    public static function getInstance()    
    {    
        // 判断对象是否创建  
        if(empty(self::$obj))    
        {    
            // 如果没有创建对象 创建并保存   
            self::$obj = new Singleton();   
        }    
  
        // 如果创建了直接返回   
        return self::$obj;    
    }    
}
<?php  
// 单例模式 index.php  
header("Content-Type:text/html;charset=utf-8");  
require_once "Singleton.php";  
  
// 第一次调用实例化对象变量方法  
$single1 = Singleton::getInstance();    
// 给 hero赋值为 诸葛亮   
$single1->hero = "诸葛亮";  
echo "single1创建的英雄为:{$single1->hero}<br/>";    
  
// 第二次调用实例化对象变量方法 程序会判断出对象已经创建过,直接使用。  
$single2 = Singleton::getInstance();    
// 给hero赋值为 周瑜,会直接覆盖第一次的诸葛亮  
$single2->hero = "周瑜";    
  
echo "single1创建的英雄为:{$single1->hero}<br/>";    
  
echo "single2创建的英雄为:{$single2->hero}<br/>";

出力結果は次のとおりです:

single1 によって作成された英雄: 諸葛孔明

single1 によって作成された英雄: 周瑜

single2 によって作成されたヒーロー 対象: Zhou Yu

関連する推奨事項:
PHP デザイン パターンの抽象ファクトリー

PHP デザイン パターンのファクトリー メソッド

PHP デザイン パターンの単純なファクトリー

以上がPHP デザイン パターン シングルトン パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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