zoukankan      html  css  js  c++  java
  • PHP设计模式(六)原型模式(Prototype For PHP)

    原型设计模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

    原型设计模式简单的来说,就是不去创建新的对象而保留原型的一种设计模式。

    缺点:
    原型设计模式是的最主要的缺点就是这个克隆方法需要对类的功能进行检测,这对于全新的类来说较容易,但对已有的类进行改造时将不是件容易的事情;

    interface Prototype {
        public function copy();
    }

    原型类:

    class PrototypeDemo implements Prototype
    {
        private $_name;
    
        public function __construct($name)
        {
            // 这里可能是复杂的逻辑
            $this->_name = $name;
        }
    
        public function getMul()
        {
            return $this->_name * $this->_name;
        }
    
        public function copy()
        {
            // 克隆后的逻辑
            $this->_name ++;
            return clone $this;
        }
    }

    客户类:  // 输入10  

    // 客户类
    class Client
    {
        public function main()
        {
            $pro1 = new PrototypeDemo('10');
            echo $pro1->getMul();
    
            echo "<br>";
    
            $pro2 = $pro1->copy();
            echo $pro2->getMul();
        }
    }

    调用客户端:

    $obj = new Client();
    $obj->main();

    输出结果:

    100
    121

    显示传入10  然后 getMul 方法做 乘方运算 得到 10*10 = 100

    然后克隆对象, 原型类的 copy 方法 被执行时, $_name 自增 1(克隆的逻辑) 后再去 做乘法运算,得到11*11 = 121

  • 相关阅读:
    Unity3D-光照贴图技术
    登岳麓山
    第一个OC程序
    Unity3D之碰撞体,刚体
    TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement
    QQ互联登录回调路径错误redirect uri is illegal(100010)
    Quartz.Net使用
    C# 文件相关操作
    微信扫码支付模式一和模式二的区别
    ankhSVN安装后,VS2010使用
  • 原文地址:https://www.cnblogs.com/wilburxu/p/6188437.html
Copyright © 2011-2022 走看看