六大设计原则

来源:互联网 发布:政务数据服务网 编辑:程序博客网 时间:2024/05/18 01:14

六大设计原则

1. 单一职责原则SRP(Single Responsibility Principle)

这里写图片描述

定义:应该有且仅有一个原因引起类的变更
RBAC: Role-Based Access Control基于角色的访问控制
建议:对于单一职责,接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化
优点:①类的复杂性降低②可读性提高③可维护性提高④变更引起的风险降低

2. 里氏替换原则LSP(Liskov Substitution Principle)

定义:只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误和异常
①子类必须完全实现父类的方法

这里写图片描述
注意:在类中调用其他类时务必传入父类或者接口,如不能使用父类或接口,则说明类的设计已经违背了LSP原则

②子类可以有自己的个性③覆盖或者实现父类的方法时输入参数可以被放大④覆写或实现父类的方法时输出结果可能被缩小

3. 依赖倒置原则LSP(Liskov Substitution Principle)

①模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过
接口或抽象类产生的
②接口或抽象类不依赖于实现类
③实现类依赖接口或抽象类。

优点:采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。

这里写图片描述

4. 迪米特原则LoD(Law of Demeter)最少知识原则(Least Knowledge Principle LKP)

定义:一个类应该对自己需要耦合或调用的类知道的最少核心观念:类间解耦,弱耦合,
①只和朋友交流(调用另外一个类的时候尽量别通过第三个类来调用)②朋友间也是有距离的(能自己处理的业务逻辑放在自己的方法中,尽量别暴露出去)③是自己的就是自己的(一个方法如果放在本类中既不增加类间关系,也不对本类产生负面影响,那就放在本类中)④谨慎使用Serializable

5. 接口隔离原则

定义:建立单一接口,同时接口尽量细化
①接口尽量要小②接口要高内聚③定制服务④接口设计是有限度的

6. 开闭原则

定义:对扩展开放,对修改关闭