[总结]面向对象的设计模式

本文是一篇关于架构师训练营第 3 周学习总结文章,主要对代码重构能力是架构师最基本的能力一课中,将涉及的内容进行总结。本文对面向对象的设计模式进行总结,包括设计模式定义、设计模式分类、简单工厂模式、单例模式、适配器模式、模板方法模式、策略模式和组合模式等。

1、什么是设计模式?

每一种模式都描述了一种问题的通用解决方案。这种问题在我们的环境中,不停地出现,而设计模式是对同一类问题可重复使用的解决方案。

设计模式有 4 个部分:

  • 模式名称 - 由少量的字组成的名称,有助于我们表达我们的设计
  • 待解问题 - 描述了何时需要运用这种模式,以及运用模式的环境(上下文)
  • 解决方案 - 描述了组成设计的元素(类和对象)、它们的关系、职责以及合作。但这种解决方案是抽象的,它不代表具体的表现。
  • 结论 - 运用这种方案所带来的利和弊。主要指它对系统的弹性、扩展性和可移植性的影响。

2、设计模式的分类

从功能上分,设计模式可分为创建模式、结构模式和行为模式。

  • 创建模式(Creational Patterns)-  对类的实例化过程的抽象
  • 结构模式(Structural Patterns)-  将类或者对象结合在一起形成更大的结构
  • 行为模式(Behavioral Patterns)-  对在不同对象之间划分责任和算法的抽象化

从方式上分,设计模式分为类模式和对象模式

  • 类模式 -  以继承的方式实现模式,静态的
  • 对象模式 -  以组合的方式实现模式,动态的

3、简单工厂模式

简单工厂模式
简单工厂模式

简单工厂的优缺点:

优点:Client 不再依赖 Sorter 的具体实现(如BubbleSorter),对 Client实现 OCP,增加 Sorter 不影响 Client。

缺点:对 Factory 未实现 OCP,增加 Sorter 需要修改 Factory。

4、单例模式

单例模式保证产生单一实例,就是说一个类只产生一个实例。使用单例模式有两个原因:

  • 因为只有一个实例,可以减少实例频繁创建和销毁带来的资源消耗;
  • 当多个用户使用这个实例的时候,便于进行统一控制(比如打印机对象)

5、适配器模式(Adapter)

适配器的作用是系统需要使用现有的类,而这个类的接口与我们所需要的不同,例如:我们需要对 List 进行排序,但是我们需要一个 Sortable 的接口,原有的 List 接口不能满足要求。

适配器模式
适配器模式

6、模板方法模式

 

《[总结]面向对象的设计模式》的相关评论

发表评论

必填项已用 * 标记,邮箱地址不会被公开。