zoukankan      html  css  js  c++  java
  • 设计模式之五种创建型模式学习笔记

    创建型模式:

    • 工厂模式:

      • 简单工厂模式(静态工厂模式):

          优点:产品使用者不需要关心产品类的创建过程,与具体产品的实现类达到解耦的效果。
          缺点:违背“开放-封闭”原则(OCP),因为新增一个产品类的时候,需要修改原先的工厂方法。
          应用场景:工厂类负责创建的对象比较少的时候。
        
      • 工厂方法模式:

          定义:工厂方法模式中抽象工厂负责定义创建对象的接口,具体对象的创建工作由实现抽象工厂的具体工厂类来完成。
          优点:在工厂方法模式中,客户端不再负责对象的创建,而是把这个责任交给了具体的工厂类,客户端只负责对象的调用,明确了各个类的职责。如果有新的产品加进来,只需要增加一个具体的创建产品工厂类和具体的产品类,不会影响其他原有的代码,后期维护更加容易,增强了系统的可扩展性。
          缺点:需要额外的编写代码,增加了工作量。
          应用场景:适合比较复杂对象的创建。
        
      • 抽象工厂模式

          定义:如果客户端需要创建一些产品结构,而这些产品结构由分别属于不同的产品类别,则可以使用抽象工厂模式,抽象工厂模式中的抽象工厂类负责定义创建对象的接口,而这一系列对象的创建工作由实现抽象工厂类的具体工厂类来完成。
          原理:抽象工厂模式主要有四部分组成:抽象工厂类的具体实现类、抽象类和实现抽象类的具体实现类。
          优点:在抽象工厂模式中,客户端不再需要负责对象的创建,而是把这个责任交给了具体的工厂类,客户端只负责对对象的调用,明确了各个类的职责。当一系列相互关联的产品被设计到一个工厂里面后,客户端的调用变得简单,而且更换这一列的产品时,只需要更换一个工厂类即可。
          缺点:如果有新的产品加进来,则需要修改抽象工厂类的设计,并同时修改实现这个抽象工厂类的具体实现类,需要额外编写代码,增加了工作量。
          应用场景:当系统创建一系列相互关联的对象时,就需要使用抽象工厂模式。

          

    • 单例模式:

    • 建造者模式:

    • 原型模式:

  • 相关阅读:
    用户登陆显示cpu、负载、内存信息
    递归算法总结
    Java算法之递归打破及在真实项目中的使用实例
    史上最简单,一步集成侧滑(删除)菜单,高仿QQ、IOS。
    仿饿了么购物车下单效果
    一起来写个酷炫的水波纹浪啊浪界面
    一行实现QQ群组头像,微信群组,圆角等效果. 并支持url直接加载图片
    使用 CoordinatorLayout 实现复杂联动效果
    这交互炸了(三) :不看后悔!你一定没见过这样的闪屏
    这交互炸了(二):爱范儿是如何让详情页缩小为横向列表的
  • 原文地址:https://www.cnblogs.com/xiqoqu/p/10408314.html
Copyright © 2011-2022 走看看