美文网首页
SOLID之SRP

SOLID之SRP

作者: 码农戏码 | 来源:发表于2019-12-29 17:26 被阅读0次

    单一职责原则 SRP,single responsibility principle

    SRP是所有原则中最简单的之一,也是最难正确运用的之一,也是我们日常中最常用的一个

    不管是编码,重构,甚至当下流行的微服务中

    在很多团队的规范中,都会听到一条编码规范:一个方法不要超过x行代码

    作为一群自命不凡的程序员,为什么在规范中却有如此一条格调不对称规范

    主要问题就在于思维对SRP的缺失


    微服务这个术语的一个问题是会将你的关注点错误地聚集在“微”上。它暗示服务应该非常小。很多团队在实施时,也是往小了去考虑,偏移了核心目标

    微服务的目标是将精心设计的服务定义为能够由小团队开发的服务,并且交付时间最短,与其它团队协作最小。

    理论上,团队可能只负责单一服务,因此服务绝对不是微小的

    单一

    从个人理解可以分为狭义与广义

    狭义:

    狭义只是从面向底层实现细节的设计原则

    一个类而言,应该仅有一个引起它变化的原因

    在日常中,在编写方法或者重构方法,也是以这个为原则,即确保一个函数只完成一个功能。

    在将大方法重构成小方法时经常会用到这个原则

    广义:

    相对狭义,适用的范围相对大些,不再是一个类,一个方法,亦或是一个原因

    任何一个软件模块都应该只对某一类行为者负责

    “软件模块”不再只是一个类,可以是一组紧密相关的函数和数据结构,甚至一个独立应用服务

    职责

    什么是职责?如果一个类承担多于一个职责,那么引起它变化的原因就会有多个

    在SRP中,职责定义为“变化的原因”,如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责

    因此对于职责的定义需要结合具体业务,有时从感性上理解一个类的多个方法应该拆分,但如果应用程序的变化方式总是导致这几个职责同时变化,那么就不需要分离

    欢迎关注【码农戏码】

    相关文章

      网友评论

          本文标题:SOLID之SRP

          本文链接:https://www.haomeiwen.com/subject/ruzyoctx.html