设计模式概述
Posted Kant101
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式概述相关的知识,希望对你有一定的参考价值。
1. 概述
设计模式在我们的系统开发过程是非常有用的,尤其是在很多比较复杂,扩展性要求比较高的系统。
同时,在一些比较常见的、优秀的框架中,设计模式也有着非常重要的应用。
设计模式没有现成的套路模板,不是教条式的照搬,需要我们熟悉设计模式理念,并结合平时的系统开发工作,才能更好的理解设计模式,从而提高我们的系统设计能力,进而提高自身的技术水平。不善于利用设计模式开发系统,则自身的技术水平就只能局限于简单的功能、接口开发,更别说什么架构设计等能力了。
本栏目是结合一些常见的例子,挨个介绍一下23种设计模式,让我们对这些设计模式有罪基本的了解,有了最基本的了解才能更深入的理解设计模式思想。
2. 23种设计模式
1. 创建型模式,共五种
-
单例模式 (Singleton Pattern) —— https://blog.csdn.net/qq_27198345/article/details/126416796
-
工厂模式 (Factory Pattern)
-
抽象工厂模式 (Abstract Factory Pattern)
-
建造者模式 (Builder Pattern)
-
原型模式 (Prototype Pattern)
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. 设计模式七大原则
一、单一职责原则
二、接口隔离原则
三、依赖倒转(倒置)原则
四、里氏替换原则
五、开闭原则
六、迪米特法则
七、合成复用原则
设计模式的目的
- 代码重用性(即:相同功能的代码,不用多次编写)
- 可读性
- 可扩展性
- 可靠性
- 使程序高内聚、低耦合
懂了设计模式,就懂了面向对象分析和设计(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
以上是关于设计模式概述的主要内容,如果未能解决你的问题,请参考以下文章