##什么是设计模式?
设计模式是前人通过大量的代码总结出来的 ‘编码套路’,是通过大量问题总结出来的解决方案。
使用设计模式可以设计出 松耦合,高内聚的代码。
设计模式可以使我们的代码更加灵活,更加有生命力。
设计模式是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。
设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。设计模式能使不稳定依赖于相对稳定,具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
##设计模式内核
设计模式大多都会遵守设计原则,设计原则是实现松耦合的指导方针。
(设计原则指面向对象设计原则)
在开始介绍设计原则之前,先让我们一起积累一些共享词汇:
OO:object-oriented(面向对象)
OO原则:面向对象设计原则
OO基础:
-
抽象
-
封装
-
多态
-
继承
OO原则: -
封装变化
-
多用组合
-
少用继承
-
针对接口编程,不针对实现编程
-
为交互对象之间的松耦合设计而努力
-
对扩展开放,对修改关闭
-
依赖抽象,不依赖具体类
-
最少知识原则/得墨忒耳法则:只和你的老友交谈
-
好莱坞原则:别调用我们,我们会调用你
-
类应该只有一个改变的理由
##常用设计模式
策略模式,观察者模式,装饰者模式,工厂模式,单例模式,命令模式,
适配器模式,外观模式,模版方法模式,迭代器模式,组合模式
我们使用设计模式的目的是为了使代码解耦,并且易于扩展,在实际编码中不能为了模式而模式。