设计模式-原型模式
About 1 minpattermjava prototype
一、对原型模式的理解
原型模式是创建模式的一种,主要通过复制一个实例来创建一个实例,而不是通过新建一个实例。被复制的实例,我们称之为原型,这个原型是可定制的。
二、代码实现
创建原型类,实现原型接口
// 原型
public abstract class Prototype implements Cloneable{
public Object clone() throws CloneNotSupportedException{
return super.clone();
}
}
class ConcretePrototype1 extends Prototype{
public static int classFlay = 1;
// 克隆自身方法
public Object clone() throws CloneNotSupportedException{
return (ConcretePrototype1)super.clone();
}
}
class ConcretePrototype2 extends Prototype{
public static int classFlay = 2;
// 克隆自身方法
public Object clone() throws CloneNotSupportedException{
return (ConcretePrototype2)super.clone();
}
}
main方法实现
public static void main(String[] args) throws CloneNotSupportedException{
Prototype pro = new ConcretePrototype1();
ConcretePrototype1 cp = (ConcretePrototype1)pro.clone();
System.out.println("标记:"+ cp.classFlay);
Prototype pro2 = new ConcretePrototype2();
ConcretePrototype2 cps = (ConcretePrototype2)pro2.clone();
System.out.println("标记:"+ cps.classFlay);
运行结果
标记:1
标记:2
三、UML类图
四、笔记
原型的优点:
性能提高
避免构造函数的约束
让客户隐藏制造新实例的复杂性
提供然客户能够产生未知类型对象的选项
在有些时候,复制对象比创建对象更有效
原型的用途和缺点
在一个复杂类层次中,当系统需要许多类型创建新对象的时候,可以考虑使用原型模式
对象复制的时候,有些时候特别的复杂