23种设计模式

552 阅读3分钟

什么是设计模式?

百度百科的解释:

设计模式(英语 design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。

通俗的讲设计模式就是针对一些问题的解决方案经验。

设计模式的六大原则

开-闭原则

模块应对扩展开放,而对修改关闭。当需要对程序进行扩展的时候,不能去修改原有的代码。

里氏代换原则

如果调用的是父类的话,那么换成子类也完全可以运行,是继承复用的一个基础。

合成复用原则

尽量使用合成聚合的方式,而不是使用继承的方式。

依赖倒转原则

抽象不应该依赖细节,要针对接口编程,而不是针对实现编程。

接口隔离原则

使用多个隔离的接口要比使用单个接口要好,一个接口只干它自己的事。

迪米特法则(也称为最小知识原则)

一个软件实体应当尽可能的少与其他实体发生相互作用。每一个软件单位对其他软件单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。

就是说一个类对其他类知道的越少越好,多个类之间尽量相互独立。

设计模式的分类

总体来说设计模式分为三大类:

创建型模式

单例模式、原型模式、工厂模式、抽象工厂模式、建造者模式。

结构型模式

适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式

策略模式、模板模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

个人对设计模式的理解

引入设计模式,会增加整个系统的复杂度,在实际项目中不要过度套用设计模式,软件系统还是简单易用为好,引入设计模式是为了后续的扩展更加的干净整洁,设计模式没有对错,只有适合与不适合,所以在自己的使用过程中还是需要合理的使用设计模式,不能盲目的生搬硬套。