zoukankan      html  css  js  c++  java
  • 单态模式

    <?php
    
    //不使用final,允许继承
    class cheat
    {
        //快速建造的生效状态,用private保护,同时设置static让所有的作弊对象共享
        private static $fastBuild = false;
        //设置快速建造的生效状态的方法,用public为了能够公开调用
        public function setStatus($input)
        {
            //如果输入的秘籍正确,operation cwal是快速建造的秘籍
            if($input === 'operation cwal')
            {
                //像开关一样,逆反状态
                self::$fastBuild = !self::$fastBuild ;
            }
        }
        //读取快速建造的生效状态的方法,用public为了能够公开调用
        public function getStatus()
        {
            return self::$fastBuild ;
        }
    }
    
    
    $cheatInstance1 = new cheat();//新增一个作弊对象
    var_dump( $cheatInstance1->getStatus() );//打印状态
    $cheatInstance1->setStatus('operation cwal');//输入秘籍
    var_dump( $cheatInstance1->getStatus() );//打印状态
    
    $cheatInstance2 = new cheat();//新增一个作弊对象
    var_dump( $cheatInstance1->getStatus() );//打印状态 发现和前一个对象共享了同一个状态
    
    /*结论:单态模式不是通过唯一对象来保持一致,它将相关的成员设置为static,
    这样即使存在很多个它的对象,但它们共享成员,保持状态的一致
    单态模式用途总结:确保某个类所有的对象的成员在某些属性上都一致,同时允许灵活的继承这各类
    但相对单件模式而言,系统资源开销要大一些。
    单态模式实现总结:把所有相关的成员设置为static。
    */
    ?>
  • 相关阅读:
    《把时间当作朋友》后记
    《把时间当作朋友》 李笑来
    chrome 和 IE 下 new Date()的不同 导致ajax出错
    ruby vim环境设置
    ASP.NET UserControl传递参数
    win2008 IIS7 ASP 的 405 错误
    天使的微笑——《天使爱美丽》
    随机点击表中某一行
    页面刷新方法
    随机选择下拉列表中的值
  • 原文地址:https://www.cnblogs.com/jiufen/p/4991509.html
Copyright © 2011-2022 走看看