设计模式概述

Posted Kant101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式概述相关的知识,希望对你有一定的参考价值。

1. 概述

设计模式在我们的系统开发过程是非常有用的,尤其是在很多比较复杂,扩展性要求比较高的系统。

同时,在一些比较常见的、优秀的框架中,设计模式也有着非常重要的应用。

设计模式没有现成的套路模板,不是教条式的照搬,需要我们熟悉设计模式理念,并结合平时的系统开发工作,才能更好的理解设计模式,从而提高我们的系统设计能力,进而提高自身的技术水平。不善于利用设计模式开发系统,则自身的技术水平就只能局限于简单的功能、接口开发,更别说什么架构设计等能力了。

本栏目是结合一些常见的例子,挨个介绍一下23种设计模式,让我们对这些设计模式有罪基本的了解,有了最基本的了解才能更深入的理解设计模式思想。


2. 23种设计模式

1. 创建型模式,共五种

2. 结构型模式,共七种

  • 适配器模式 (Adapter Pattern)

  • 装饰器模式 (Bridge Pattern)

  • 代理模式 (Proxy Pattern)

  • 外观模式 (Facade Pattern)

  • 桥接模式 (Bridge Pattern)

  • 组合模式 (Composite Pattern)

  • 享元模式 (Flyweight Pattern)

3. 行为型模式,共十一种

  • 策略模式 (Strategy Pattern)

  • 模板模式 (Template Pattern)

  • 观察者模式 (Observer Pattern)

  • 迭代器模式 (Iterator Pattern)

  • 责任链模式 (Chain of Responsibility Pattern)

  • 命令模式 (Command Pattern)

  • 备忘录模式 (Memento Pattern)

  • 状态模式 (State Pattern)

  • 访问者模式 (Visitor Pattern)

  • 中介者模式 (Mediator Pattern)

  • 解释器模式 (Interpreter Pattern)


3. 设计模式七大原则

一、单一职责原则

二、接口隔离原则

三、依赖倒转(倒置)原则

四、里氏替换原则

五、开闭原则

六、迪米特法则

七、合成复用原则


设计模式的目的

  1. 代码重用性(即:相同功能的代码,不用多次编写)
  2. 可读性
  3. 可扩展性
  4. 可靠性
  5. 使程序高内聚、低耦合

懂了设计模式,就懂了面向对象分析和设计(OOA/D)的精要

1. 单一职责原则(Single Responsibility Principle)

基本介绍
对类来说,即一个类应该只负责一项职责。如果A服务两个不同职责:职责1、职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为 A1、A2。

单一职责原则注意事项和细节
1)降低类的复杂度,一个类只负责一项职责;
2)提高类的可读性、可维护性;
3)降低变更引起的风险;
4)通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则。


2. 接口隔离原则 (Interface Segregation Principle)

基本原则
1)客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上;

2) 类A通过接口Interface1去依赖类B,类C通过Interface2去依赖类D,如果接口Interface1对于类A和类来说不是最小接口,那么类B和类D必须去实现它们不需要的方法;

3)接口隔离原则应该这么处理
将接口Interface1拆分为独立的几个接口,类A和类C分别与它们需要的接口建立依赖关系,也就是采用接口隔离原则。

3. 依赖倒转原则 (Dependence Inversion Principle)


4. 里氏替换原则 (Liskov Substitution Principle)


5. 开闭原则 (Open Closed Principle)


6. 迪米特法则 (Demeter Principle)


7. 合成复用原则 (Composite Reuse Principle)


4. 设计模式核心思想


5. 参考文献

[1] https://blog.csdn.net/qq_35669659/article/details/123145226

以上是关于设计模式概述的主要内容,如果未能解决你的问题,请参考以下文章

设计模式概述

RxJava开发精要3-向响应式世界问好

需求引导设计 切莫教条主义

精要主义设计人生——对混乱的工作说不

调度系统设计精要

设计模式精要