学习设计模式的目的:让代码重用,容易被让人理解,保证代码可靠性。
设计模式的用途:
开发人员的共同平台,最佳的实践。(最佳解决方案).
设计模式主要是基于一下的面向对象原则:
1.对接口编程而不是对实现编程。
2.有限使用对象组合而不是继承。
主要的设计原则:
1.单一职责原则
对一个类,应该只有一个引起它变化的原因。(如何理解?)。如果一个类承担的职责过多,就等于将责任耦合,这样会是一个职责的变化印象其他的职责。另外,如果把多个职责耦合在一起,会影响代码的复用性。
2.开闭原则
一个软件实体应该对扩展开放,对修改关闭。即每次发生变化时,要通过添加新的代码来增强现有类型的行为,而不是修改原有的代码。符合开闭原则最好的方式是提供一个固有的接口,然后让所有可能发生变化的类实现该接口。让固定的接口与相关对象进行交互。
3.里氏代替原则
子类必须可以替换掉它们的父类型。
4.依赖倒置原则
抽象不应该依赖于细节,细节依赖于抽象(面向接口编程,而不是面向实现编程).
5.接口隔离原则
使用多个专门的接口比使用单一的总接口要好。让一个单一的接口承担太多的职责,是对接口的一种污染。
6.合成复用原则
在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分。新对象通过向这些对象的委派达到复用已有功能的目的。j简单地说,就是要尽量使用合成/聚合,尽量不要使用继承。
7.迪米尔法则(最少知识原则)
一个对象应该对其他对象有尽可能少的了解。一个模块或者对象应尽量少的与其他实体之间发生相互作用。使其功能相互独立。只与你的朋友们通信,不要跟陌生人说话。