原型模式
Posted camcay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原型模式相关的知识,希望对你有一定的参考价值。
通过复制已存在的对象获取新的实例,被复制的对象称为“原型”。
应用场景
- 用于创建复杂的或者耗时的实例
- 创建值相等,只是命名不一样的同类数据
类图和示例(来源: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()); } }
运行结果
以上是关于原型模式的主要内容,如果未能解决你的问题,请参考以下文章