java设计模式连载(4) --原型模式
名称:Prototype
意图:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
适用性:
- 当要实例化的类是在运行时刻指定时,例如,通过动态装载;或者
- 为了避免创建一个与产品类层次平行的工厂类层次时;或者
- 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。
实例:
1.建立一个具有克隆功能的原型
package The_Prototype_Pattern; public class Sheep implements Cloneable{ private String name; public void setName(String name) { this.name = name; } public String getName() { return this.name; } public Object clone(){ try { return super.clone(); } catch (Exception e) { e.printStackTrace(); return null; } } }
2. 写一个克隆的类
package The_Prototype_Pattern; public class CloneSheep extends Sheep{ public CloneSheep(String name){ this.setName(name); } }
3. 写一个测试类
package The_Prototype_Pattern; public class Test { public static void main(String[] args){ Sheep pro = new CloneSheep("克隆羊"); Sheep pro4 = new CloneSheep("克隆羊"); Sheep pro2 = (Sheep)pro.clone(); Sheep pro3 = (Sheep)pro2.clone(); System.out.println(pro.getName()+":"+pro); System.out.println(pro2.getName()+":"+pro2); System.out.println(pro3.getName()+":"+pro3); System.out.println(pro4.getName()+":"+pro4); } }
4. 多谢浏览