设计原则——单一职责原则(Single Responsibility Principle)

定义

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

原因

  需求的变化会反映为类的职责的变化,过多的职责耦合在一起,使得一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。

举例

  下面的Modem(调制解调器)接口具有两个职责,一个是连接管理(dialhangup方法),另一个是数据通信(sendrecv方法)。

public interface Modem {
    void dial(String pno);
    void hangup();
    void send(char c);
    void recv();
}

这两个职责是否应该被分开,这依赖于需求变化的方式。

  • 分开
    如果需求的变化会单独影响连接管理的职责,比如连接管理方法的签名发生变化,那么就会导致调用数据通信方法的类必须重新编译,这种情况下这两个职责就应该被分离。

    分离的Modem接口

  • 不分开
    如果需求的变化总是导致这两个职责同时变化,那么就不应该分离它们。实际上,分离它们就会有不必要的复杂性的臭味。

结论

  SRP是所有原则中最简单的之一,也是最难正确运用的之一。我们会自然地将职责混合在一起。软件设计真正要做的许多内容,就是发现职责并把那些职责分离。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值