SOLID 原则之 单一职责原则
SOLID 原则并非单纯的 1 个原则,而是由 5 个设计原则组成的,它们分别是:单一职责原则、开闭原则、里式替换原则、接口隔离原则和依赖反转原则,依次对应 SOLID 中的 S、O、L、I、D 这 5 个英文字母。(没有迪米特法则)我们今天要学习的是 SOLID 原则中的第一个原则:单一职责原则。
单一职责原则(Single Responsibility Principle)
里氏替换原则(Liskov Substitution Principle)
依赖倒置原则(Dependence Inversion Principle)
接口隔离原则(Interface Segregation Principle)
开闭原则 (Open Closed Principle)
迪米特法则 (Law Of Demeter)
设计模式六大原则总结
设计模式六大原则:面向对象语言开发过程中,会有经验心得总结沉淀,然后就成了原
则,属于指导性原则(方向,不是具体招数-更虚)
单一职责原则(Single Responsibility Principle)
定义 1
一个类只负责一个功能领域中的相应职责
定义 2
就一个类而言,应该只有一个引起它变化的原因。
通俗的说,即一个类只负责一项职责。
我的理解就是 一个类能够做到改动它的理由只能有一个 就是 单一原则
多分支的 Animal 该如何设计
单一职责的用法 就是 分拆 将 if else 过多 拆了 各是各的类 逻辑判断复杂也拆了 拆到别的类做具体逻辑 主类只做调用
类中的 if else 很多 判断
动物类都放在一个类---需要各种判断+分支---肯定不稳定,有很多个原因让他变化---违背了
单一职责---拆分成多个类(chicker cow fish)---每个类就都稳定了,都单一职责了
Client--->
利率要变,得改类,说明职责不单一---封装利率获取的逻辑到别的类
账号验证要变,得改类,说明职责不单一---封装到别的类里面—UserCheckService
一个类的多个动作,交给别的类去封装,只负责调用---满足单一职责,增强稳定
总结
单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则,需
要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强
的分析设计能力和相关实践经验—只有熟悉业务,才能做好设计
太虚了,还是动不了手
1 如果类型足够简单,可以在类级别去违背单一职责
2 如果方法足够简单,可以在方法级别去违背单一职责
3 如果类型复杂了,方法逻辑多了,建议遵循单一职责原则
4 一个方法,不超过 50 行(编码建议)
5 一个类,不超过 300 行(编码建议)
优缺点
优点:
1 可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单
的多;
2 提高类的可读性,提高系统的可维护性;
3 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功
能时,可以显著降低对其他功能的影响。
缺点:
1 拆多了零碎,不好管理,不好使用,成本高
有所得必有所失,设计师做的,就应该是扬长避短,灵活应用
评论