敏捷软件开发之单一职责原则

SRP:单一职责原则(The Single Responsibility Principle,SRP):
一个类应该只有一个发生变化的原因。

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

例如如下Modem的接口违反了SRP:

package com.pptb.design.patterns.srp;

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

Modem接口的dial和hangup函数职责是连接管理,send和recv的职责是数据通信,应该将这两组函数分离到两个接口中,如下:

package com.pptb.design.patterns.srp;

public interface Connection {
    void dial(String pno);
    void hangUp();
}

package com.pptb.design.patterns.srp;

public interface DataChannel {
    void send(char c);
    char recv();
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单一职责原则(SRP) 介绍 就一个类而言,应该仅有一个引起它变化的原因。 实现方法之一就是把不同职责分离到不同的...
    东风三队阅读 2,325评论 0 0
  • 《Agile Principles, Patterns, and Practices in C#》by Micah...
    丑小丫大笨蛋阅读 14,158评论 3 18
  • 面向对象的3个基本要素: 封装、继承、多态 面向对象的5个基本设计原则: 单一职责原则(Single-Respos...
    badcyc阅读 4,386评论 0 4
  • 01 星期五下午5点,像往常一样,我“赶”车去成都。车子刚走大概10几分钟就停下了,有个小贩上车来叫卖他的锅魁(成...
    小迷糊Lyla阅读 3,003评论 0 5
  • 今天一天几乎都在看这部日剧《卖房子的女人》,一开始是有点不喜欢女主角三轩家万智略浮夸,或者说有点僵硬冷冰冰的表演,...
    亦如是阅读 3,878评论 0 4