php设计模式笔记:单例模式

php设计模式笔记:单例模式

 

意图:

保证一个类仅有一个实例,并且提供一个全局访问点

单例模式有三个特点:

1、一个类只有一个实例
2、它必须自行创建这个实例
3、必须自行向整个系统提供这个实例

主要实现:

Singleton定义了一个instance操作,允许外部访问它的唯一实例,instance是一个类方法,负责创建它的唯一实例。

singleton适用场景:

1、当类只能有一个实例而且外部可以从一个公共的访问点访问它。
2、当这个唯一实例应该是通过子类化可扩展的。并且用户应该无需更改代码就能使用一个扩展的实例时。

Singleton实例:

 1 <?php
 2     class singleton{
 3         //静态成品变量 保存全局实例
 4         private static $_instance = NULL;
 5         //私有化构造方法,防止外部访问
 6         private function __construct(){}
 7         //防止用户克隆
 8         private function __clone(){}
 9         //静态工厂方法,返回此类的唯一实例
10         public static function getInstance(){
11             if(!(self::$_instance instanceof self)){
12                 self::$_instance = new self;
13             }
14             return self::$_instance;
15         }
16         //测试
17         public function test(){
18             echo "singleton test!";
19         }
20     }
21 
22     class Singletontest{
23         public static function main(){
24             $instance = singleton::getInstance();
25             $instance->test();
26         }
27     } 
28 
29     Singletontest::main();
30 ?>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值