面向对象的五大原则:
1.单一职责,Single Responsibility Princeple, SRP。
1.1 两个含义:一个是避免相同的职责分散到不同的类中,另一个是避免一个类继承太多的职责
1.2 根据业务流程,把业务对象提炼出来。如果业务流程太复杂,就把这个业务分离为多个单一业务对象。
1.3 职责的分类需要注意。有业务职责,还要有脱离业务的抽象职责,从认识业务到抽象算法是一个层层递进的过程。就好比命令模式中的顾客,服务员和厨师的职责,作为老板要规划好各个职员的职责范围。
2.接口脱离原则。
2.1 接口隔离原则(Interface Segregation Principle,ISP)
2.2 减少接口中的污染
3.开放-封闭原则(Open-Close Principle,OCP)
Open:模块的行为必须是开放的、支持扩展
Closed: 在对模块进行扩展时,不应该影响或大规模的影响已有的程序模块
Note:How?
3.1 在设计方面充分应用‘抽象’和‘封装’的思想
3.2 在系统功能编程实现方面应用面向接口的编程