《设计模式》系列——概览


public static int main(){
  System.out.println("Hello World");
}

写在前面

  • 平时总是CRUD,感觉代码写来写去没什么意思
  • 当业务频繁变更时,却又觉得代码的灵活度太差
  • 看一些框架源码时,总是各种各样的类,云里雾里

生活真叫人头秃

那么,是时候了解一些设计模式了✿✿ヽ(°▽°)ノ✿


首先,设计模式并不是什么银弹,并不是学会了设计模式,以后业务变更时代码就再也不用重构了;设计模式是从过去几十年软件开发过程中抽象积淀出的一些设计技巧;帮助我们在设计软件系统时,尽量的具有“弹性”

其次,在真实的开发场景中,很有可能我们并不能直接套用所谓的设计模式,需要我们自己针对业务/系统对模式进行定制,以适合各自的需求

23种设计模式

当然,并不是固定死的只有23种,只是业内最经典的、广为流传和使用的,具有代表性的一般有23种设计模式

根据其功能和场景,可以分为三大类:创建型、结构型、行为型

一脸懵逼

创建型

  • Factory Method(工厂方法)
  • Abstract Factory(抽象工厂)
  • Builder(建造者)
  • Prototype(原型)
  • Singleton(单例)

结构型

  • Adapter Class/Object(适配器)
  • Bridge(桥接)
  • Composite(组合)
  • Decorator(装饰)
  • Facade(外观)
  • Flyweight(享元)
  • Proxy(代理)

行为型

  • Interpreter(解释器)
  • Template Method(模板方法)
  • Chain of Responsibility(责任链)
  • Command(命令)
  • Iterator(迭代器)
  • Mediator(中介者)
  • Memento(备忘录)
  • Observer(观察者)
  • State(状态)
  • Strategy(策略)
  • Visitor(访问者)

结语

学习、参考书目为《Head First设计模式》

后面,会定期更新《设计模式》的系列文章,直至讲完全部的23种设计模式

这个问题很深奥

具体的子文章将会按照如下的规范去编写:

  • 概念简介
  • 模式UML图
  • 适用场景
  • 举例子🌰(比如在spring、jdk中的应用等)
  • 给出源码地址
  • 小结(包括优缺点,类似模式的比较,一般与哪些模式结合适用…)

文章作者: ocean
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ocean !
评论
 上一篇
《设计模式》系列——策略模式 《设计模式》系列——策略模式
概念 定义了算法族,分别封装起来,每个族内的各种实现可以相互替换,此模式让算法的变化独立与使用算法的客户 举例比如我们有一个场景: 在用户上传文件时,可以根据情况上传到不同地方(aliyun、腾讯云、七牛云、或者本机…) 那么,我们就
2020-04-01
下一篇 
新的开始 新的开始
新的开始 啦啦啦,新的博客搭建好了,以后就在这里碎碎念了😸 欢迎大家常来✿✿ヽ(°▽°)ノ✿ 原因 上大学的时候,断断续续的写过一段时间;不过一直没能比较规律的坚持下来,知识也没有比较好的“归档”,很难成体系 随着入行时间越来越久,
2020-03-30
  目录