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

设计模式之创建型模式—— 1.5 原型模式

时间:2015-02-17 23:43:45      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:设计模式 原型模式

<?php

	/**
	 * 1.5 原型模式
	 * 	解决的问题:
	 * 		某些结构复杂的对象的创建工作,由于需
	 * 		求的变化,这些对象经常面临着剧烈的变
	 * 		化,但是它们却有用比较稳定一种的接口。
	 *  解决的方案:
	 *  	用原型实例指定创建对象的种类,并且通
	 *  	过拷贝这些原型创建新的对象。
	 *  该模式无需任何角色:
	 *  	因为在PHP中,在每个声明的类中已经默认
	 *  	包含了克隆函数,所以无需单独在建立一个
	 *  	抽象类来实现克隆操作了。
	 *  优点:
	 *  	1. 简化某些比较复杂对象的创建工作,同时
	 *  	   也可以提高效率;
	 *  	2. 原型模式提供了简化的创建结构.
	 *  缺点:
	 *  使用场景:
	 *  	1. 当要实例化的类是在运行时刻指定时
	 *  	   ,例如,通过动态装载。
	 *  	2. 为了避免创建一个与产品类层次平行
	 *  	   的工厂类层次时。
	 *  	3. 当一个类的实例只能有几个不同状态
	 *  	   组合中的一种时,建立相应数目的原
	 *  	   型并克隆它们可能比每次用合适的状
	 *  	   态实例化该类更方便一些。
	 */

	class Person{
		private $name;
		private $age;
		private $sex;
		public function __construct($name,$age,$sex){
			$this->name=$name;
			$this->age=$age;
			$this->sex=$sex;
		}

		public function getInfo(){
			return $this->name.‘ ‘.$this->age.‘ ‘.$this->sex;
		}
	}

	//客户端
	$p1=new Person(‘Jack‘,‘20‘,‘male‘);
	$p2=clone $p1;
	echo $p1->getInfo();
?>


本文出自 “一切皆有可能” 博客,请务必保留此出处http://noican.blog.51cto.com/4081966/1614772

设计模式之创建型模式—— 1.5 原型模式

标签:设计模式 原型模式

原文地址:http://noican.blog.51cto.com/4081966/1614772

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