设计模式之原型模式

来源:互联网 发布:excel多列重复数据筛选 编辑:程序博客网 时间:2024/06/05 09:25

和工厂模式类似,都是用来创建对象的,与工厂模式不同,先创建一个原型对象,在通过clone来创建一个新对象。就免去了类创建时重复的初始化。适合于大对象的创建,每次创建一个大对象都需要很大开销,如果每次new 就消耗很大,运行仅仅内存拷贝即可!

此例子通过初始化一个画布,然后进行构建简单图形,通过原型模式,只需要初始化一次画布。

<?phpnamespace yuanxing;class yuanxing{private $arr=array();private $num ;function init($num){$this->num = $num;for($i=0;$i<$num;$i++){for($j=0;$j<$num;$j++){$this->arr[$i][$j]='*';}}}function Cal($num1,$num2){for($i=0;$i<$num1;$i++){for($j=0;$j<$num2;$j++){$this->arr[$i][$j]=" ";}}for($i=0;$i<$this->num;$i++){for($j=0;$j<$this->num;$j++){      echo$this->arr[$i][$j];}echo "\n";}}}$pro = new yuanxing();$pro->init(12);$obj1 = clone $pro;$obj1->cal(10,3);echo "\n";$obj2 = clone $pro;$obj2->Cal(5,6);?>


运行结果:


1 0
原创粉丝点击