设计模式 -- 单一职责原则

本文深入探讨了设计模式中的单一职责原则,解释了SRP的含义,强调了类应仅有一个引起变化的原因。文章通过实例展示了如何将职责分离以降低耦合,提高模块稳定性。同时,结合康威定律,讨论了如何根据组织结构来设计符合单一职责原则的软件模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单一职责原则

单一职责原则,又称Single responsibility principle,SRP。

望文生义的理解

一个模块只干一件事。

“一个模块只干一件事”的确是重要的软件设计思想,但它其实是“高内聚、低耦合”的通俗解释,是从模块自身考虑怎么去组合的设计思想。

将变化纳入考量

Robert Martin 在《敏捷软件开发:原则、实践与模式》中,对单一职责原则的定义:

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

职责是什么?

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

为什么要分离职责?

软件设计是一门关注长期变化的学问,一个模块最理想的状态是不改变,其次是少改变,它可以成为一个模块设计好坏的衡量标准。
每一个职责都是变化的一个轴线。当需求变化时,该变化会反应为类的职责的变化。如果一个类承担了多于一个的职责,那么引起它变化的原因就有多个。
如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一个职责的变化可能会削弱或抑制类完成其他职责的能力。

将变化的来源纳入考量

Robert Martin 在《架构整洁之道》中重新定义了单一职责原则:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值