zoukankan      html  css  js  c++  java
  • 创建型模式总结(2.x)

    顾名思义,创建型模式的聚焦点在如何创建对象能够将对象的创建与使用最大化的分离从而降低系统的耦合度。


    创建型模式可分为:

    • 单例模式:一个类只能有一个实例对象
    • 工厂模式:
      • 简单工厂模式:聚焦单个产品种类的创建(客户端无法扩展)
      • 工厂方法模式:聚焦单个产品种类的创建(客户端可自扩展具体的产品)
      • 抽象工厂模式:聚焦多个产品种类的创建(客户端可自扩展固定产品种类下的产品)
    • 原型模式:创建一个对象,然后通过复制的方式创建其他对象
    • 建造者模式:不仅考虑创建对象,还需要给对象的属性赋值

    【工厂模式举例】:

    假如生产一种饮料类,其中有可乐,雪碧,橙汁三种饮料。简单工厂模式的设定就是用户只有这三种饮料可选。

    而工厂方法模式就是用户可在饮料类的基础上可以再扩展出茶π,脉动这样的饮料。

    对于抽象工厂来说,不满足于饮料类下各种饮料的扩展,而是和饮料类平级的比如食物类,球类这样的类别创建。

    那么对于用户来说,可以使用饮料类,食物类,球类,也可类的基础上实例化不同的对象,比如饮料类可以扩展出尖叫,乐虎这样的饮料,食物类和球类除了服务端定制的之外,也可自行扩展。上述所说的多个产品种类就是指向饮料类,食物类,球类...等等这一级别。


    【抽象工厂的限制】:抽象工厂的多个产品是在服务端定制的,也就是说,客户端可以实现多个产品种类下的具体产品创建,但是无法扩展更多的产品种类。

    -----------------------------------------------------------------------------------------------------------------------2019.8.13

  • 相关阅读:
    BZOJ.3720.Gty的妹子树(树分块)
    洛谷.3369.[模板]普通平衡树(Splay)
    洛谷.3224.[HNOI2012]永无乡(Splay启发式合并)
    洛谷.2234.[HNOI2002]营业额统计(Splay)
    洛谷.1486.[NOI2004]郁闷的出纳员(Splay)
    BZOJ.1901.Dynamic Rankings(线段树套平衡树 Splay)
    洛谷.1110.[ZJOI2007]报表统计(Splay Heap)
    洛谷.2596.[ZJOI2006]书架(Splay)
    BZOJ.1597.[Usaco2008 Mar]土地购买(DP 斜率优化)
    洛谷.2042.[NOI2005]维护数列(Splay)
  • 原文地址:https://www.cnblogs.com/noneplus/p/11347518.html
Copyright © 2011-2022 走看看