【注】
我所写的这些,其实是在自己理解以后写的。
至于代码,都是去查阅资料后才写的。一般的教材
都在IDE写的,所以会看到包的管理。我不想在学习
设计模式时又考虑其他的。所以以后写的代码都是
在VIM下写的。其原因大概是因为我是java初学者。
想练习练习。
【感想】
至于原型模式。我觉得,也很好理解的。
举个例子:美国的一架捕食者无人机飞到我国
领土上空。人民解放军,拦截下来啦。美国
国防部非常着急。想派海豹突击队秘密前来
炸掉也不希望中国人民解放军拿来研究。。。
可以进入主题啦!
假设我们把对象事例比喻成一架捕食者。那么
我们不需要去美国兵工厂去购买。或者去美国
兵工厂去学习如何造出来啦。我们直接解剖这
架我们已经拿到手的进行研究仿制。最后,
制造出自己的(捕食者)即(新对象实例)
好开始啦:
interface Prototype extends Cloneable{
public Prototype clone();
public void setName(String name);
public String getName();
}
class ConcretPrototype implements Prototype{
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public Prototype clone(){
try{
return (Prototype) super.clone();
}catch(CloneNotSupportedException e){
e.printStackTrace();
return null;
}
}
}
public class Test{
public static void main(String [] args){
Prototype prototype = new ConcretPrototype();
prototype.setName("Frank");
System.out.println(prototype == p );
System.out.println(prototype.getName());
System.out.println(p.getName());
}
}
首先第一个输出为false.也就是说这两个失礼不相等的
但是后面的输出都相等。
false
Frank
Frank
这个例子,只为说明一点。
你可以通过第一次声明的 prototype 对象实例
获得第二个对象事例:即 p
更加深入的理解与分析,明天继续。