原型模式

原型模式

作者:LAMP小白  点击:1759  发布日期:2012-10-08 22:14:00  返回列表

原型模式创建对象的方式是复制和克隆初始化对象或原型,这种方式比创建新势力更为有效

$bandMixProto对象是根据MixtapeCD的实例创建的,他包含了cd类的全部方法

利用foreach我们可以轻松实现对不同cd的购买动作

mio_lt;?php
    class cd
    {
        public $band = '';
        public $title = '';
        public $trackList = array();
        public function __construct($id)
        {
            $this-mio_gt;band = 'band'.$id;
            $this-mio_gt;title = 'title'.$id;
        }
        public function buy()
        {
            var_dump($this);
        }
    }
    class mixTapeCD extends cd
    {
        public function __clone()
        {
            $this-mio_gt;title = 'mixtape';
        }
    }
    $bandID = 12;
    $bandMixProto = new mixTapeCD($bandID);
    $externalPurchaseInfo = array();
    $externalPurchaseInfo[] = array('brrr', 'goodbye');
    $externalPurchaseInfo[] = array('what it means', 'brrr');
    foreach($externalPurchaseInfo as $mixed){
        $cd = clone $bandMixProto;
        $cd-mio_gt;trackList = $mixed;
        $cd-mio_gt;buy();
    }
?mio_gt;



上一篇:观察者模式 下一篇:快递查询API
0