设计模式:在某些场景下,针对某类问题的某种通用的解决方案。
解决方案:通用、可以复用的设计,解决约束,达到目标。
设计模式的三大分类:
- 创建型模式:对象实例化的模式,创建型模式解耦了对象的实例化过程。
- 结构性模式:把类或对象结合在一起形成更大的结构。
- 行为型模式:类和对象如何交互,及划分责任和算法。
对象设计的六大原则:
- 组合复用原则。
- 依赖倒置原则。
- 开闭原则。
- 迪米特法则。
- 里氏替换原则。
- 单一职责原则。
- 接口隔离原则。
组合复用原则:多用组合,少用继承。
依赖倒置原则:要依赖于抽象,不要依赖于具体。(在Java中,抽象指的是接口或者抽象类,具体就是具体的实现类)。
开闭原则:对扩展开放,对修改关闭。
迪米特法则(俗称:最少知识原则):一个对象应该与其他对象保持最少的理解。
接口隔离原则:一个类对另外一个类的依赖应该建立在最少的接口上。
里氏替换原则:所有引用基类的地方必须能透明地使用其子类对象,子类在扩展父类功能时不能破坏父类原有的功能。
使用继承时,遵循里氏替换原则:
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
- 当子类重载父类方法时,方法的形参要比父类方法的参数更宽松。
- 当子类实现父类的抽象方法时,方法的返回值要比父类更严格。
里氏替换原则时设计整个继承体系的原则。
单一职责原则:类应该只有一个导致类变更的理由。即一个类只负责一项职责。