当你频繁需要创建同类或者相似的对象实例的时候可以使用原型设计模式。原型设计模式就是克隆一个对象实例,再设置可改变的特征,就得到了一个相似或者同类的对象实例。这样可以减少资源的消耗。思考下,为什么能减少资源消耗。
1、原型模式类图
2、代码实例
package com.leon.prototype;
/**
* 设计模式——原型模式,实例代码
*
* @author leon
*
*/
public class ProtoTypeTest {
//创建大量相似的对象实例
public static void main(String[] args) throws CloneNotSupportedException {
A a = new A();
for (int i = 0; i < 10; i++) {
ProtoType prototype = (ProtoType) a.clone();
prototype.setSize(i);
System.out.println(prototype);
prototype.printSize();
}
}
}
// 原型
interface ProtoType {
void setSize(int x);
void printSize();
}
//一个具体的类A
class A implements ProtoType, Cloneable {
private int size;
@Override
public void setSize(int x) {
// TODO Auto-generated method stub
this.size = x;
}
@Override
public void printSize() {
// TODO Auto-generated method stub
System.out.println("size:" + this.size);
}
//原型模式的类,一定支持克隆
@Override
protected A clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return (A) super.clone();
}
}