1 设计模式的分类
设计模式一般来说可以分为三大类:创建型模式、结构型模式、行为型模式。具体来说,可以有如下细分。
创建型模式有:
结构型模式:
- 适配器模式
- 装饰器模式
- 桥接模式
- 组合模式
- 享元模式
- 代理模式
- 外观模式
行为模式:
- 观察者模式
- 模板方法模式
- 命令模式
- 状态模式
- 责任链模式
- 解释器模式
- 终结者模式
- 访问者模式
- 策略模式
- 备忘录模式
- 迭代器模式
2 设计模式的六大原则
六大原则分别为
单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则
- 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。也就是一个类只做一件事情,职责单一。
- 里氏替换原则:子类型必须能够替换它们的父类型。也就是凡是父类出现的地方,其子类都可以将其替换。
- 依赖倒置原则:高层次模块不应该依赖底层模块。两个都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。通缩解释:要针对接口编程,不要对实现编程。
- 接口隔离原则:类间的依赖关系应该建立在最小的接口上,要求接口尽量细化,接口纯洁。另外一种说法,客户端不应该依赖它不需要的接口,应该依赖它需要的接口,客户端需要什么接口就提供什么接口,把不需要的接口剔除掉,也就是对接口进行细化。
- 迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。根本思想是强调类之间的松散耦合。类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。
- 开闭原则:软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。对于扩展开放,对于修改封闭。
3 设计模式的好处
运用设计模式构建一个软件(程序)可以带来以下优点:
可维护、可复用、可扩展、灵活性好。
- 可维护指的是代码只需修改少量代码即可保证程序正常运行;
- 可复用指的是可以重复使用原有的代码;
- 可扩展指的是只需新建某个具体的类,不需要修改已有代码,通过依赖倒置的原则,便可完成扩展;
- 灵活性好指的是程序结构的灵活性好,易扩展、易维护,使得代码更有弹性,更能适应需求的变化。