设计模式:就是工程实践中,对设计经验的一个总结。
我个人理解设计模式落脚点:变化
精髓就是哪里变化封装那里。
分类:创建型、结构型、行为型
设计法则:Solid法则
1 单一职责原则
对一个类来说,有且只有一个变化点引起一个类变化
2开放封闭原则
对变化封闭、对扩展开放 其实换句话说:对已有的类、模块来说,做到不修改。但是能够容易扩展新的功能。
3 依赖倒置原则
高层模块不应该依赖于底层模块,两者依赖于抽象
抽象不应依赖于细节,细节应该依赖于抽象
这句话我们:我们应该面向接口编程。
4 里氏代换原则
子类能够完全代表父类出现;也就是说:父类和子类关系W为Is - a 关系。就类似:鸵鸟和鸟 所有鸟都能飞 但是鸵鸟不能飞,
也就是所有鸟都能飞不能封装在父类中。这个法则告诉我们:正确的设计子类和父类
5 合成复用原则
在设计时候,尽量使用组合,而不是继承关系。
6 迪米特法则(最少知识原则)
如果两个类不必直接通信,那么两个类就不应该直接发生关系。若其他的类需要调用另一个类的某个方法,就通过第三者转发调用。
前提:每个类尽量减少成员访问的权限。
优势:减少类 的耦合性
就如:一个人只与熟悉的人打交道,而不能与陌生人打交道。
7 接口分离原则
接口独立,也即是接口必须单一,比如插座:两孔插座和三孔插座,而不是两孔和三孔复用。