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

  • 相关阅读:
    iOS7 自己定义动画跳转
    Android开发之用双缓冲技术绘图
    postgres 使用存储过程批量插入数据
    渗透过程
    python pytesseract使用
    排序算法比较
    python算法
    python中PIL模块
    数字电路复习
    windows服务参考
  • 原文地址:https://www.cnblogs.com/wilburxu/p/6188437.html
Copyright © 2011-2022 走看看