原型模式是一种创建型设计模式,使用克隆方法来复制现有对象,从而避免重复的初始化操作,特别适用于创建重复对象的场景。
适用场景:
- 当一个系统需要创建新对象的对象系统中,可通过克隆一个原型并对其进行改造。
- 当对象的创建成本比较大(如复杂的初始化)时。
示例代码:
abstract class Shape implements Cloneable {
abstract void draw();
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
class Circle extends Shape {
@Override
void draw() {
System.out.println("Drawing a Circle");
}
}
class PrototypeManager {
private Map<String, Shape> prototypes = new HashMap<>();
public PrototypeManager() {
prototypes.put("circle", new Circle());
// 可以添加更多类型
}
public Shape getShape(String type) throws CloneNotSupportedException {
return (Shape) prototypes.get(type).clone();
}
}
public class Client {
public static void main(String[] args) throws CloneNotSupportedException {
PrototypeManager pm = new PrototypeManager();
Shape shape = pm.getShape("circle");
shape.draw(); // 输出: Drawing a Circle
}
}
标签:CloneNotSupportedException,Pattern,class,Shape,原型,PrototypeManager,Circle,Protot
From: https://blog.csdn.net/weixin_43298211/article/details/142289673