设计模式整理理解(一)

136 阅读3分钟

这是第一篇关于设计模式的理解,后续计划把整个23种设计模式分别梳理一下

等完成之后,再来写《设计模式整体理解(二)》

设计模式分类:

  1. 创建型
  2. 结构型
  3. 行为型

创建型设计模式

  1. 工厂模式

  2. builder模式

  3. 单例模式

  4. 原型模式

     创建型设计模式很好理解,也最容易理解。
     我们在代码中声明一个对象,new肯定是最简单的写法,但是在复杂项目里,想要“高内聚,低耦合”,有些对象的创建必须要优雅,这样也让我们的代码更易读。
     比如:
     单例是最常见的
     建造者模式一般用于独立一个sdk的初始化,或者比较频繁使用的对象。
    

结构型设计模式:

  1. 代理模式

  2. 装饰者模式

  3. 适配器模式

  4. 桥接模式

  5. 组合模式

  6. 门面模式

  7. 享元模式

     结构型设计模式描述如何将对象组合在一起,关注的是对象之间的关系。
     比如代理模式:代理类和被代理类:代理关系
     装饰者模式:装饰者类,被装饰者类:装饰关系
     适配器模式:转换关系
     门面模式:这个非常常用,封装关系
     享元模式:共享
    

行为型设计模式:

  1. 观察者模式

  2. 责任链模式

  3. 策略模式

  4. 迭代器模式

  5. 中介者模式

  6. 命令模式

  7. 状态模式

  8. 模版模式 ...

    行为型设计模式,即是关注行为,进行不同类的责任划分,更关注类的相互作用,一个对象在运行时对其他对象产生影响。 观察者模式:观察者,被观察者 状态模式:根据状态进行行为 策略模式:不同策略的相互替换,不影响调用代码

整体理解

写出优雅的代码,除了要对基本的API熟悉,还需要对类分层、命名都要合理(后续打算写一篇关于常用命名的文章)。

而在代码内部,除了设计模式基本原则之外,熟练使用设计模式更能让自己的代码更加“专业”,更能让别人理解。

一般我们在开发一个功能之外,如果是“缝缝补补”的代码,这种基本无解,除了方法封装、命名优雅之外,也很难用到设计模式。 如果是独自承担一个模块,就需要很强的整体设计能力。

比如新写一个sdk:
sdk首先可能被设计成单例模式,然后初始化config一般使用builder模式。
然后接口回调,这个是观察者模式
如果里面有很多状态,很多类型,就可能涉及状态模式、策略模式、责任链模式
.....

实现功能一般中级开发工程师都能实现,写好代码就需要进行整体规划、设计,写出易于维护的代码,共勉。