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。
    */
    ?>
  • 相关阅读:
    Oracle结构连接配置结构
    理解cookie和session机制
    Asp.net中网站级异常捕获
    C#字符串函数大全
    一个简单的C#多线程间同步的例子
    SQL中的存储过程存放位置
    类和结构的区别?
    SQL点滴9—使用with语句来写一个稍微复杂sql语句
    Asp.NET 的Session实现原理 转自21kaiyun.com
    Script to analyze table space usage
  • 原文地址:https://www.cnblogs.com/jiufen/p/4991509.html
Copyright © 2011-2022 走看看