单一职责
- SRP : Single Responsibility Principle
- 类:只代表一种角色
- 接口:只代表一类抽象
- 方法:只做一件事
- 字读:只代表一种含义
开闭原则
- OCP : Open Close Principle
- 功能的添加通过扩展实现,而不是修改代码
- 类修改的唯一原因是因为错误
- 策略模式、工厂方法是开闭原则的良好实现
里氏替换原则
- LSP : Liskov Substitution Principle
- 父类能够出现的地方,子类也能出现,并且不会引起错误
- 此原则强调了父类与子类之间,必定是一种继承关系
- 父类出现的地方,子类不能出现的,请考虑使用组合的方式
接口隔离原则
- ISP : Interface Segregation Principle
- 多个专门的接口胜过一个单一的总接口
- 单一的总接口会引起接口角色的污染
- 单一的总接口会越来越臃肿
- 单一的总接口会导致客户端强制实现某些不必要的方法
依赖倒置
- DIP : Dependency Inversion Principle
- 高层模块,相互依赖抽象
- 高层模块的会话,应该处于同样的抽象级别
最少知识原则
- LKP : Least Knowledge Principle
- 一个类对另外一个类应该有最少的了解
- 过多的了解会破坏使用者简介清晰的调用
- 过多的暴露,会破坏代码的安全,破坏代码正常执行
- 最少知识原则强调了面向对象的封装,弱耦合
- 要注意访问修饰符的合理使用