码迷,mamicode.com
首页 > 其他好文 > 详细

原型模式

时间:2016-08-20 13:16:53      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

原型模式与工厂模式作用相似,都是用来创建对象的;

与工厂模式的实现不同,原型模式是先创建一个对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时的重复初始化操作;

原型模式适合于大对象的创建,创建一个对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可;

入口文件index.php

init();
$canvas1 = clone $prototype;
$canvas1->rect(3,6,4,12);
$canvas1->draw();
echo "=========================
";
$canvas2 = clone $prototype;
$canvas2->rect(1,3,2,6);
$canvas2->draw();

原型类LampBlog/Canvas.php,

data = $data;
  }
  function draw() {
    foreach ($this->data as $line) {
      foreach ($line as $char) {
        echo $char;
      }
      echo "
\n";
    }
  }
  //绘制矩形
  function rect($a1, $a2, $b1, $b2) {
    foreach ($this->data as $k1 => $line) {
      if ($k1 < $a1 or $k1 > $a2) {
        continue;
      }
      foreach ($line as $k2 => $char) {
        if ($k2 < $b1 or $k2 > $b2) {
          continue;
        }
        $this->data[$k1][$k2] = " ";
      }
    }
  }
}

原型模式

标签:

原文地址:http://www.cnblogs.com/yangtzewang/p/5790158.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!