设计模式--原型模式

来源:互联网 发布:国家大力发展人工智能 编辑:程序博客网 时间:2024/06/09 14:13

原型模式:当创建给定类的实例的过程很昂贵或很复杂时,就使用原型模式;

  

  • 使用场景
    • 在电子游戏中,每进入一个新的场景,就会有新的怪物出现;而且我们自己还可以创建怪兽;
    • 问题:
      • 创建各种怪兽实例,已经很麻烦了,还要将各种状态细节放在构造函数中,看起来不太内聚。如果能在单一区域内封装所有的实例化细节就好了;
      • 如果能够将负责处理创建怪兽的细节代码,从实际需要动态创建实例的代码中解耦,那么程序将变得相当干净;
  • 使用原型
    • 原型模式允许你通过复制现有的实例来创建新的实例(在Java中,这通常意味着使用clone()方法,或者反序列化)。这个模式的重点在于,客户的代码在不知道要实例化何种特定类的情况下,可以制造出新的实例;
    • 优点:
      • 向客户隐藏制造新实例的复杂性;
      • 提供让客户能够产生未知类型对象的选项;
      • 在某些还环境下,复制对象比创建新对象更有效;
    • 用途和缺点:
      • 在一个复杂的类层次中,当系统必须从其中的许多类型创建新对象时,可以考虑原型;
      • 缺点:对象的复制有时相当的复杂;
原创粉丝点击