• PHP工厂模式


    【Single.class.php】

    <?php
    /**
     * 单例模式
     * 使某个类的实例仅允许创建一个
     */
    
    class Single
    {
        private static $ins; //保存对象的静态属性
    
        //私有的构造方法,屏蔽了外部new操作
        private function __construct()
        {
        }
    
        //禁止克隆
        private function __clone()
        {
        }
    
        public static function getInstance()
        {
            if (!(self::$ins instanceof self)) {
                self::$ins = new self();
            }
            return self::$ins;
        }
    
        public function output()
        {
            return "单例模式输出...";
        }
    }

    【Factory.class.php】

    <?php
    /**
     * 工厂模式
     * 使用工厂方法或者类生成对象,而不是在代码中直接new操作
     */
    
    class Factory
    {
        public static function getSingleOutput()
        {
            //Single类未使用单例模式之前可以如下调用
            //$obj = new Single();
    
            //Single类使用了单例模式之后,只能用下面的方法调用
            //不管调用多少次,在Single类中都只会new一次
            $obj = Single::getInstance();
            $obj2 = Single::getInstance();
    
            return '工厂模式--'.$obj->output();
        }
    
    }

    【调用】

    ////【工厂模式】
    //如果需要调用Single类的output方法,现在只需要调用Factory::getSingleOutput即可
    //假设 Single::output 方法的名称或参数要修改,只需要修改Factory::getSingleOutput即可
    //其他各种地方调用 Factory::getSingleOutput 的代码都不需要修改
    echo Factory::getSingleOutput() . '<br>';
  • 相关阅读:
    IntelliJ IDEA导包快捷键
    maven命令创建web骨架项目
    v2.0版本小程序开发心得(代码之外)
    装饰器模式
    闭包
    git diff的文字说明
    WSGI和CGI
    word-wrap、white-space和word break的区别
    Javascript中正则的 match、test、exec使用方法和区别
    Git 内部原理
  • 原文地址:https://www.cnblogs.com/rxbook/p/10385170.html
Copyright © 2020-2023  润新知