zoukankan      html  css  js  c++  java
  • php设计模式-单例模式

    所谓单例,一个类通过接口提供一个实例,不能通过new或者clone创建新的实例。

    单例的实现关键,通过一个静态的方法 getInstance实现的,这个方法只返回该类的唯一实例,第一次调用该方法的时候,他创建一个实例,把他存在一个私有的静态变量中,下一次只需要把之前创建的实例返回,即可达到单例的效果

     1 class Log {
     2         static private $instance = NULL;
     3 
     4         private function __construct(){
     5         }
     6 
     7         private function __clone(){
     8         }
     9         
    10         function log( $str ) {
    11             echo $str . PHP_EOL;
    12         }
    13 
    14         static function getInstance(){
    15             if( self::$instance == NULL ) {
    16                 self::$instance = new Log();
    17             }
    18             return self::$instance;
    19         }
    20     }
    21 
    22     Log::getInstance()->log( "warning info" );
    23     Log::getInstance()->log( "error info" );
    24     //下面的报错
    25     new Log();

    这里把构造函数和__clone方法声明为private是防止使用者,不小心用new或者clone生成新的实例

  • 相关阅读:
    C#小型资源管理器
    C#换肤LrisSkin
    面向对象的24种设计模式
    七大设计原则
    非泛型集合和泛型集合
    C#经理评价系统
    深入C#.NET框架
    C#窗口航空总结
    java基础数据结构和语法
    HTML
  • 原文地址:https://www.cnblogs.com/ghostwu/p/8461004.html
Copyright © 2011-2022 走看看