1. 单一职责原则:对象应该仅具有一种单一功能
  2. 开闭原则:面向扩展开放,面向修改封闭
  3. 里氏替换原则:程序中对象在不改变程序正确性的前提下被它的子类所替换
  4. 依赖倒置原则:多个特定客户端接口要好于一个宽泛用途的接口
  5. 接口隔离原则:依赖于抽象而不是一个实例


Others

  1. 避免过早优化
  2. 实现尽量简单化
  3. 不能为了设计模式而使用设计模式