原型模式
通过复制已存在的对象获取新的实例,被复制的对象称为“原型”。
应用场景
- 用于创建复杂的或者耗时的实例
- 创建值相等,只是命名不一样的同类数据
类图和示例(来源:wiki)

public class Cookie implements Cloneable{ @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } } public class CookieA extends Cookie{ } public class CookieMachine { private Cookie cookie;//必须可复制,否则makeCookie会抛出异常 public CookieMachine(Cookie cookie){ this.cookie = cookie; } public Cookie makeCookie(){ try { return (Cookie)cookie.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return null; } } //测试 public class Client { public static void main(String[] args){ CookieMachine cookieMachine = new CookieMachine(new CookieA()); System.out.println(cookieMachine.makeCookie()); System.out.println(cookieMachine.makeCookie()); } }
运行结果

语言是思想的载体

浙公网安备 33010602011771号