第 3 章 单例模式

<?php
header("Content-type: text/html; charset=UTF-8");
/**
* 单例模式
* 这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,
* 单例就是单一、独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?
* 我们举个比较难复制的对象:皇帝
* 中国的历史上很少出现两个皇帝并存的时期,是有,但不多,那我们就认为皇帝是个单例模式,在这
* 个场景中,有皇帝,有大臣,大臣是天天要上朝参见皇帝的,今天参拜的皇帝应该和昨天、前天的一样(过
* 渡期的不考虑,别找茬哦),大臣磕完头,抬头一看,嗨,还是昨天那个皇帝,单例模式,绝对的单例模式,
*
*/

// 然后我们看程序实现,先定一个皇帝:

/**
* 中国的历史上一般都是一个朝代一个皇帝,有两个皇帝的话,必然要PK出一个皇帝出来
*/
class Emperor {
    private static $emperor = null; //定义一个皇帝放在那里,然后给这个皇帝名字
    
    private function __construct(){
        //世俗和道德约束你,目的就是不让你产生第二个皇帝
    }
    
    public static function getInstance(){
        if(self::$emperor == null){ //如果皇帝还没有定义,那就定一个
            self::$emperor = new self();
        }
        return self::$emperor;
    }
    
    //皇帝叫什么名字呀
    public function emperorInfo(){
        echo ("我就是皇帝某某某....<br><br><br><br>");
    }
}


// 然后定义大臣:

/**
* 大臣是天天要面见皇帝,今天见的皇帝和昨天的,前天不一样那就出问题了!
*/
class Minister {
    
    public function __construct() {
        //第一天
        $emperor1 = Emperor::getInstance();
        $emperor1->emperorInfo(); //第一天见的皇帝叫什么名字呢?
        
        //第二天
        $emperor2 = Emperor::getInstance();
        $emperor2->emperorInfo();
        
        //第三天
        $emperor3 = Emperor::getInstance();
        $emperor3->emperorInfo();
        
        //三天见的皇帝都是同一个人,荣幸吧!
    }
}

new Minister();


运行结果:

我就是皇帝某某某....



我就是皇帝某某某....



我就是皇帝某某某....














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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值