创建型模式(四):Prototype(原型模式)
通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备
一个克隆方法。
例子:跟MM用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是我的情话prototype了。
1 class Prototype implements Cloneable{
2 private String name;
3 public String getName() {
4 return name;
5 }
6 public void setName(String name) {
7 this.name = name;
8 }
9 @Override
10 protected Object clone(){
11 try {
12 return super.clone();
13 } catch (CloneNotSupportedException e) {
14 e.printStackTrace();
15 return null;
16 }
17 }
18 }
19
20 class ConcretePrototype extends Prototype {
21 public ConcretePrototype(String name) {
22 setName(name);
23 }
24 }
25
26 public class Test {
27 public static void main(String[] args) {
28 Prototype pro = new ConcretePrototype("prototype");
29 Prototype pro2 = (Prototype)pro.clone();
30 System.out.println(pro.getName());
31 System.out.println(pro2.getName());
32 }
33 }