php设计模式——原型模式

原型模式

  • 概念理解:原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象。适用于大对象的创建,因为创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可。
  • 好处
    • 原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可
  • 代码
         /**
         * PHP原型模式
         * 先创建一个原型对象,然后通过clone原型对象来创建新的对象
         * 这样可以避免类创建时重复的初始化操作。
         * Class Prototype
         */
        class Prototype
        {
            public function init()
            {
                //.....这里初始化工作 有200次循环复杂操作
            }
        
            public function run()
            {
                //执行操作
            }
    
            /**
             * 浅拷贝
             * */
            public function shallowCopy()
            {
                return clone $this;
            }
            /**
             * 深拷贝
             * */
            public function deepCopy()
            {
                $serialize_obj = serialize($this);
                return unserialize($serialize_obj);
            }
        }
        
        //创建原型对象并初始化
        $prototype = new Prototype();
        $prototype->init();
        
        //clone 原型对象
        $obj1 = clone $prototype;
        $obj1->run();
        //clone 原型对象
        $obj2 = clone $prototype;
        $obj2->run();
    
    

你可能感兴趣的:(php设计模式——原型模式)