设计原则检查
本篇文章,简单搬运课上ppt内容,侵删。
SOLID设计原则检查
SRP(Single Responsibility Principle,单一功能原则)
- 每个类或方法都只有一个明确的职责。
- 类职责:使用多个方法,从多个方法来综合维护对象所管理的数据。
- 方法职责:从某个特定方面来维护对象的状态(更新、查询)。
OCP(Open Close Principle,开闭原则)
- 无需修改已有实现(close),而是通过扩展来增加新功能(open)。
LSP(Liskov Substitution Principle,里氏替换原则)
- 任何父类出现的地方都可以使用子类来代替,并不会导致使用相应类的程序出现错误。
- 子类虽然继承了父类的属性和方法,但往往也会增加一些属性和方法,可能破坏父类的相关约束。
ISP(Interface Segregation Principle,接口隔离原则)
- 当一个类实现一个借口类的时候,必须要实现接口类中的所有接口,否则就是抽象类(abstract class),不能实例化出对象。
- 软件设计经常需要设计接口类,来规范一些行为。避免往一个接口类中放过多的接口。
DIP(Dependency Inversion Principle,依赖反转原则)
- High-level modules should not depend on low-level modules. Both should depend on abstactions.
- Abstactions should not depend on details. Details should depend on abstractions.
其他设计原则检查
设计模式
用以解决特定(具有普遍性)问题的一种方案,如对象构造工厂、职责代理等。
体系结构
软件模块被组织/集成为系统的结构,如MVC,Pipeline。
设计原则
关于设计的整体要求和约束,通过满足设计原则来获得好的设计质量。
层次化抽象原则,按照问题域逻辑关系来识别类。
责任均衡分配原则,避免出现God类和Idiot类。
局部化原则,类之间不要冗余存储相同的数据,方法之间不能够出现控制耦合。
完整性原则,一个类需要提供针对相应数据进行处理的完整方法集。完整是个相对概念,一般来说是相对于问题域需求。
重用原则(共性抽取原则),把不同类之间具有的共性数据或处理抽象成继承关系,避免冗余。
显示表达原则,显示表达所有想要表达的数据或逻辑,不使用数组存储位置或者常量来隐含表示某个特定状态或数据。
信任原则,一个方法被调用时,调用者需要检查和确保方法的基本要求能够被满足,获得调用结果后需要按照约定的多种情况分别进行处理。
懂我原则,所有类、对象、变量、方法等的命名做到“顾名思义”。