设计模式总结之Prototype Pattern(原型模式)

目录

  • 设计模式分类
创建型设计模式:
  • Singleton Pattern(单例模式)   
  • Prototype Pattern(原型模式)
  • Factory Method Pattern(工厂方法模式)   
  • Abstract Factory Pattern(抽象工厂模式)
  • Builder Pattern(建造者模式)
结构型设计模式:
  • Adapter Pattern(适配器模式)   
  • Bridge Pattern(桥接模式)
  • Composite Pattern(组合模式)
  • Decorator Pattern(装饰者模式)
  • Façade Pattern(外观模式)
  • Flyweight Pattern(享元模式)
  • Proxy Pattern(代理模式)   
行为型设计模式:
  • Chain of Responsibility Pattern(职责链模式)
  • Command Pattern(命令模式)
  • Interpreter Pattern(解释器模式)   
  • Iterator Pattern(迭代器模式)
  • Mediator Pattern(中介者模式)
  • Memento Pattern(备忘录模式)
  • Observer Pattern(观察者模式)
  • State Pattern(状态模式)
  • Strategy Pattern(策略模式)
  • Template Method Pattern(模板方法模式)
  • Visitor Pattern(访问者模式)


Prototype Pattern(原型模式)

意图

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

适用性

当要实例化的类是在运行时刻指定时,例如,通过动态装载;
为了避免创建一个与产品类层次平行的工厂类层次时;
当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。

结构

设计模式总结之Prototype Pattern(原型模式)_第1张图片 
参与者:
• Prototype(原型) 
— 声明一个克隆自身的接口。
• ConcretePrototype(具体的原型) 
— 实现一个克隆自身的操作。 
• Client(场景) 
— 让一个原型克隆自身从而创建一个新的对象。 


例子

阿诺斯瓦辛格主演的《第六日》2000上映。主角叫亚当,来之圣经:上帝在第六日创造了亚当。
在不远的将来,牛、鱼甚至宠物都可以任意克隆,但克隆人类是非法的。但有一天当亚当-吉布森回到家,却发现一个克隆人取代了自己。他被赶出了家门,更遭的是,阴谋的制造者为了掩盖真相,派出杀手追杀亚当灭口。为了逃生,同时也为了重新赢得自己的一切,亚当同神秘的幕后策划者展开了机智的战斗。

设计模式总结之Prototype Pattern(原型模式)_第2张图片
 

优缺点

优点:
性能优良。原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好地体现其优点。


缺点:
逃避构造函数的约束。这既是它的优点也是缺点,直接在内存中拷贝,构造函数是不会执行的。优点就是减少了约束,缺点也是减少了约束,需要大家在实际应用时考虑。


你可能感兴趣的:(Architecture)