1. 单一职责:一个类,只需要做好一件事情。
  2. 开放封闭:一个类,应该是可扩展的,而不可修改的。
  3. 依赖倒置:一个类,不应该强依赖另一个类,每个类对于另外一个类都是可替代的
  4. 配置化: 尽快能的使用配置,而不是硬编码
  5. 面向接口编程:只需要关心接口,不需要关心实现。