1.理由: 拆
代码拆分,复用。如何将代码分散在几个不同的类中?为什么要有“接口”?何谓针对抽象编程?何时不应该使用继承?如果不修改源代码增加新功能?
2 掌握:
这个设计模式的意图是什么,它要解决一个什么问题,什么时候可以使用它;它是如何解决的,掌握它的结构图,记住它的关键代码;能够想到至少两个它的应用实例,一个生活中的,一个软件中的;这个模式的优缺点是什么,在使用时要注意什么。
3.原则
单一职责 开闭原则 面向接口编程 合成复用 中介 类松耦合
单一职责原则 一个类只负责一个功能领域中的相应职责
开闭原则 软件实体应对扩展开放,而对修改关闭
里氏代换原则 所有引用基类对象的地方能够透明地使用其子类的对象
依赖倒转原则 抽象不应该依赖于细节,细节应该依赖于抽象 面向接口编程,声明变量,参数,返回值尽量用接口或者抽象类,扩展无需修改已有
接口隔离原则 使用多个专门的接口,而不使用单一的总接口
合成复用原则 尽量使用对象组合,而不是继承来达到复用的目的 is-a has-a(组合、聚合) 继承暴露父类细节,父变子类也得变
迪米特法则 一个软件实体应当尽可能少地与其他实体发生相互作用 类之间松耦合