24种设计模式介绍与6大设计原则(PHP版)之单例模式
时间:2011-09-01
来源:互联网
             这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一、独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?
我们举个比较难复制的对象:皇帝
中国的历史上很少出现两个皇帝并存的时期,是有,但不多,那我们就认为皇帝是个单例模式,在这个场景中,有皇帝,有大臣,大臣是天天要上朝参见皇帝的,今天参拜的皇帝应该和昨天、前天的一样(过渡期的不考虑,别找茬哦),大臣磕完头,抬头一看,嗨,还是昨天那个皇帝,单例模式,绝对的单例模式
  
    复制代码
            
            我们举个比较难复制的对象:皇帝
中国的历史上很少出现两个皇帝并存的时期,是有,但不多,那我们就认为皇帝是个单例模式,在这个场景中,有皇帝,有大臣,大臣是天天要上朝参见皇帝的,今天参拜的皇帝应该和昨天、前天的一样(过渡期的不考虑,别找茬哦),大臣磕完头,抬头一看,嗨,还是昨天那个皇帝,单例模式,绝对的单例模式
- <?php
 - /**
 - * 单例模式
 - * 中国的历史上一般都是一个朝代一个皇帝
 - * 有两个皇帝的话,必然要PK出一个皇帝出来
 - *
 - */
 - class Emperor {
 -         private static $emperor = null;//定义一个皇帝放在那里,然后给这个皇帝名字
 - 
        
 -         //将构造函数设置成 private ,让构造函数只能在内部被调用,而外部不能调用。
 -         //这样,这个类就不能被外部用 new 的方式建立多个实例了
 -         private function __construct(){}
 - 
        
 -         public static function getInstance()
 -         {
 -                 if(self::$emperor == null){//如果皇帝还没有定义,那就定一个
 -                         self::$emperor = new Emperor();
 -                         var_dump('self::$emperor = new Emperor(); ');
 -                 }
 -                 return self::$emperor;
 -         }
 - 
        
 -         //皇帝叫什么名字呀
 -         public static function emperorInfo(){
 -                 echo "我就是皇帝某某某...";
 -         }
 - }
 - 
        
 - /**
 - *  大臣是天天要面见皇帝
 - * 今天见的皇帝和昨天的、前天的不一样那就出问题了!
 - *
 - */
 - class Minister
 - {
 -         public static function doit() {
 -          //第一天
 -         $emperor1=Emperor::getInstance();
 -         $emperor1->emperorInfo();//第一天见的皇帝叫什么名字呢?          
 -          //第二天
 -         $emperor2=Emperor::getInstance();
 -         Emperor::emperorInfo();         
 -          //第三天
 -         $emperor3=Emperor::getInstance();
 -         $emperor2->emperorInfo();
 -        
 -          //三天见的皇帝都是同一个人,荣幸吧!
 -         }
 - }
 - 
        
 - $minister = new Minister();
 - $minister->doit();
 
作者: 顺顺利利 发布时间: 2011-09-01
             顶一个!            
            作者: 单骑闯天下 发布时间: 2011-09-02
 相关阅读 更多  
      
    热门阅读
-  
 office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
          阅读:74
 -  
 如何安装mysql8.0
          阅读:31
 -  
 Word快速设置标题样式步骤详解
          阅读:28
 -  
 20+道必知必会的Vue面试题(附答案解析)
          阅读:37
 -  
 HTML如何制作表单
          阅读:22
 -  
 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
          阅读:31
 -  
 ET文件格式和XLS格式文件之间如何转化?
          阅读:24
 -  
 react和vue的区别及优缺点是什么
          阅读:121
 -  
 支付宝人脸识别如何关闭?
          阅读:21
 -  
 腾讯微云怎么修改照片或视频备份路径?
          阅读:28
 















