设计模式存在的根本原因是为了代码复用,增加可维护性,有如下原则:

  • 开闭原则 对扩展开放,对修改关闭。如:不修改试卷,增加附加题
  • 里氏转换原则 所有引用基类的地方必须能够透明地使用其子类对象(子类继承自父类,被单独调用可正常运行,如盗版光盘,继承自正版盘,可独立使用)
  • 依赖倒转原则 引用一个对象,如果这个对象有底层类型,直接应用底层。
  • 接口隔离原则 每一个接口应该是一种角色。
  • 合成/聚合复用原则 新的对象应该使用一些已有的对象,使这些已有对象成为新对象的一部分。
  • 迪米特原则 一个对象应对其他对象有尽可能少的了解