`
dev_liu
  • 浏览: 109352 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式之Prototype(原型)

阅读更多


定义:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
Prototype 模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的
细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象
通过请求原型对象拷贝它们自己来实施创建。
如何使用?
因为Java 中的提供clone()方法来实现对象的克隆,所以
Prototype 模式实现一下子变得很简单.
以勺子为例:
public abstract class AbstractSpoon implements Cloneable
{
String spoonName;
public void setSpoonName(String spoonName) {this.spoonName = spoonName;}
public String getSpoonName() {return this.spoonName;}
public Object clone()
{
Object object = null;
try {
object = super.clone();
} catch (CloneNotSupportedException exception) {
System.err.println("AbstractSpoon is not Cloneable");
}
return object;
}
}
有两个具体实现(ConcretePrototype):
public class SoupSpoon extends AbstractSpoon
{
public SoupSpoon()
{
setSpoonName("Soup Spoon");
设计模式(Patterns in Java)
16
}
}
public class SaladSpoon extends AbstractSpoon
{
public SaladSpoon()
{
setSpoonName("Salad Spoon");
}
}
调用Prototype 模式很简单:
AbstractSpoon spoon = new SoupSpoon();
AbstractSpoon spoon = new SaladSpoon();
当然也可以结合工厂模式来创建AbstractSpoon 实例。
在Java 中Prototype 模式变成clone()方法的使用,由于Java 的纯洁的面向对象特性,使
得在Java 中使用设计模式变得很自然,两者已经几乎是浑然一体了。这反映在很多模式上,
如Interator 遍历模式。

更多  http://www.jdon.com

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics