具体实现部分
package com.designmode.prototype;
public abstract class Prototype {
abstract Prototype myClone();
}
package com.designmode.prototype;
public class ConcretePrototype extends Prototype{
private String filed;
public ConcretePrototype(String filed) {
this.filed = filed;
}
@Override
Prototype myClone() {
return new ConcretePrototype(filed);
}
@Override
public String toString() {
return filed;
}
}
主函数
package com.designmode.prototype;
/**
* 原型模式指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
* 有点类似于文件复制。
* eg:
* 1)Client:用于提出创建请求。
* 2)Prototype:定义一个原型需要的功能。比如复制文件需要克隆功能。
* 3)ConcretePrototype:实现原型需要的功能。就是我们的文件实现了可以被复制的功能。
* @author hexiaoli
*
*/
public class Client {
public static void main(String[] args) {
Prototype prototype = new ConcretePrototype("for test");
Prototype clonePrototype = prototype.myClone();
System.out.println(clonePrototype.toString());
}
}