zoukankan      html  css  js  c++  java
  • 6.原型模式

    • 一、角色
      • Prototype(抽象原型类):负责定义用于复制现有实例来生成新实例的方法
      • ConcretePrototype(具体原型类):负责实现复制现有实例并生成新实例的方法
      • Client(客户类/使用者):负责使用复制实例的方法生成新的实例
    • 二、适用场景
      • 对象种类繁多,无法将他们整合到一个类的时候
      • 难以根据类生成实例时
      • 想解耦框架与生成的实例时
    • 三、实例
      图-1
    • 三、开源项目使用实例
      • 在Struts2中为了保证线程的安全性,Action对象的创建使用了原型模式,访问一个已经存在的`Action对象时将通过克隆的方式创建出一个新的对象,从而保证其中定义的变量无须进行加锁实现同步,每一个Action中都有自己的成员变量,避免Struts1因使用单例模式而导致的并发和同步问题
      • 在Spring中,用户也可以采用原型模式来创建新的bean实例,从而实现每次获取的是通过克隆生成的新实例,对其进行修改时对原有实例对象不造成任何影响
  • 相关阅读:
    P2495 [SDOI2011]消耗战
    计算机的组成
    人力资源管理【9047】
    物流管理【0670】
    企业战略管理【0612】
    资源经济学【0478】
    金融理论与实务【0466】
    公共关系学【0362】
    电子商务概论【0351】
    教育社会学【0283】
  • 原文地址:https://www.cnblogs.com/zhongj/p/11268632.html
Copyright © 2011-2022 走看看