# 前言

最近北京疫情又反复了,开启居家办公模式~😝,闲暇之余重温了一下《设计模式-可复用面向对象软件的基础》这本书,感觉没有大三的时候看的那么晦涩了,打算开设计模式这一系列来记录一下心得吧。毕竟,好记性不如烂笔头 🚀🚀🚀

# 什么是设计模式

简单来说,设计模式是对现实世界不断发生的重复问题的描述,并提供该问题的解决方案的核心。落实到代码层面的话,设计模式是对用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。 通常来讲,一个模式有四个基本要素:

  • 模式名
  • 问题

​ 描述应该什么时候使用该模式,解释问题产生的前因后果

  • 解决方案

​ 描述设计的组成部分以及它们之间的相互关系,各自的职责和协作方式

  • 效果

​ 描述模式达到的效果和使用该模式需要权衡取舍那些东西,毕竟世界上没有银弹,不可能有一招吃遍天的模式

# 设计模式分类

模式按照目的(用来完成什么工作)分为:

  • 创建型:与对象的创建有关

  • 结构型:为了处理类或者对象的组合

  • 行为型:对类或者对象怎样交互和分配职责进行描述