原型模式比较简单,就是利用object中的clone()方法做一次深度拷贝,复制一份原有对象即可。这种方式的好处在于原有对象的拷贝没有调用原有对象的New方法,也就没有触发原有对象的构造函数链,提高了对象制造效率。这种模式应用场景在于对象基本相同,除了个别属性字段有区分,可以复制后更改这些个别字段即可。
原型模式类图:
具体实现demo:
原型类:
package protypePattern;
public class ProtoType implements Cloneable{
private String name;
private String content =" , welcome to Taobao,have fun here.";
public Object clone() {
Object o =null;
try{
o=(ProtoType)super.clone();
}catch(CloneNotSupportedException e) {
System.out.println(e.toString());
}
return o;
}
public void showGreetingwords(){
System.out.println(this.getName()+content);
}
public String getContent() {
return content;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
测试类:
package protypePattern;
public class PrototypePatternTest {
public static void main(String[] args){
ProtoType greetingForLxy = new ProtoType();
greetingForLxy.setName("lxy");
greetingForLxy.showGreetingwords();
System.out.println("-----------After cloning greetingForLxy---------");
ProtoType greetingForShuofeng = (ProtoType) greetingForLxy.clone();
greetingForShuofeng.setName("shuofeng");
greetingForShuofeng.showGreetingwords();
greetingForLxy.showGreetingwords();
}
}
说明:Cloneable接口这里本没有必要去实现,因为直接复写object中的clone方法就可以了。这里实现这个接口只是为了说明原型模式用的是深克隆。
- 大小: 3.9 KB
分享到:
相关推荐
这是设计模式的工厂模式的简单代码,是用的菜鸟教程网站零散例子,在本地实际跑代码。自己给自己做个复习
博客原地址:http://blog.csdn.net/lhy_ycu/article/details/40031567
本人自己收集的一些比较好的学习设计模式的教程!里面包含了很多种设计模式学习!通俗易懂......QQ:82204642
设计模式(菜鸟到高手)
设计模式(Design pattern)是一套被反复使用、...本章系Java之美[从菜鸟到高手演变]系列之设计模式,我们会以理论与实践相结合的方式来进行本章的学习,希望广大程序爱好者,学好设计模式,做一个优秀的软件工程师!
24种设计模式介绍与6大设计原则希望这本书的阅读者具备最基本的代码编写能力,您是一个初级的 coder,可以从中领会到怎么设计 一段优秀的代码;您是一个高级程序员,可以从中全面了解到设计模式以及 Java 的边角技术...
这是设计模式的工厂模式的改善代码版本,用了反射机制,是用的菜鸟教程网站零散例子,在本地实际跑代码。自己给自己做个复习
设计模式(Design pattern)是一套被反复使用、...本章系Java之美[从菜鸟到高手演变]系列之设计模式,我们会以理论与实践相结合的方式来进行本章的学习,希望广大程序爱好者,学好设计模式,做一个优秀的软件工程师!
主要介绍23中设计模式,其中都有基于Java的代码示例
深入浅出设计模式,深入浅出设计模式,深入浅出设计模式
设计模式(Design pattern)是一套被反复使用、...本章系Java之美[从菜鸟到高手演变]系列之设计模式,我们会以理论与实践相结合的方式来进行本章的学习,希望广大程序爱好者,学好设计模式,做一个优秀的软件工程师!
详细介绍了java的23种设计模式,并且对设计模式进行了简明扼要的介绍,并且每种设计模式带着一个小例子
主要为大家详细介绍了java设计模式之单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
简单例子说明了java的23种设计模式的原理,方便大家进行程序开发,对于入门级选手(我也是初学者)有很大的帮助
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习,这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为11个压缩包,绝对的物有所值...
菜鸟学设计模式(28天)[收集].pdf
C#23种设计模式【完整】(亲测可用) C#23种设计模式【完整】(亲测可用)
java常用的设计模式一个简单总结,如工厂模式、单例模式、代理模式等等。(楼主也是未入门的菜鸟,如有错误请及时联系楼主更正,谢谢!)
23种软件设计模式 工厂模式 建造模式等等常用软件设计模式