设计模式:在某些场景下,针对某类问题的某种通用的解决方案。

解决方案:通用、可以复用的设计,解决约束,达到目标。

设计模式的三大分类:

  • 创建型模式:对象实例化的模式,创建型模式解耦了对象的实例化过程。
  • 结构性模式:把类或对象结合在一起形成更大的结构。
  • 行为型模式:类和对象如何交互,及划分责任和算法。

对象设计的六大原则:

  • 组合复用原则。
  • 依赖倒置原则。
  • 开闭原则。
  • 迪米特法则。
  • 里氏替换原则。
  • 单一职责原则。
  • 接口隔离原则。

组合复用原则:多用组合,少用继承。

依赖倒置原则:要依赖于抽象,不要依赖于具体。(在Java中,抽象指的是接口或者抽象类,具体就是具体的实现类)。

开闭原则:对扩展开放,对修改关闭。

迪米特法则(俗称:最少知识原则):一个对象应该与其他对象保持最少的理解。

接口隔离原则:一个类对另外一个类的依赖应该建立在最少的接口上。

里氏替换原则:所有引用基类的地方必须能透明地使用其子类对象,子类在扩展父类功能时不能破坏父类原有的功能。
使用继承时,遵循里氏替换原则:

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  • 当子类重载父类方法时,方法的形参要比父类方法的参数更宽松。
  • 当子类实现父类的抽象方法时,方法的返回值要比父类更严格。
    里氏替换原则时设计整个继承体系的原则。

单一职责原则:类应该只有一个导致类变更的理由。即一个类只负责一项职责。