面向对象:单一任务原则(SRP)

 

 

Robert C. Martin提出的面向 象的5个原 次介 一下单一 任原 任原 (Single Responsibility Principle (SRP)): 任只有一个,修改 的理由不能存在多个。

参考文档(http://www.objectmentor.com/resources/articles/srp.pdf )

遵循SRP 任原 类满 足以下条件:
  ◇ 只 有一个角色( 任)
  ◇ 修改 合,修改的理由只有一个
 
什么要去 任是 一的呢?
一个 有复数个 任, 修改的 候有2个以上的理由。其中某一个机能修改的 候很容易影响到其他机能。 件的安定性和 维护 便利性很会 差。
SRP 任原 中"修改的理由= 任" 这样 。即使理 明白但在 践中判断是比 的。
下面以打电话举 明:
Modem.java
interface Modem {
    public void dial(String pno);    //拨打
    public void hangup();          //挂电话
    public void send(char c);     //送信
    public char recv();           //收信
}
这样定义的Modem接口 看起来是一组机能,实质上是两组机能。
   ◇ 连接管理 (dial、hangup)
    ◇ 数据送受信(send、recv)
为什么这边要分为两组机能呢?
Modem有以下修改:
   ◇ 连接方法的修改  ⇒ Modem 类修改
   ◇ 送受信方法的修改 ⇒ Modem类修改
因此对应相对的变化,这边作为两组机能。
 
这样我们就可以重新定义如下
连接管理接口
    Connection {dial, hangup}
数据送受信接口:
    DataChannel {send, recv}
然后具体的实现 给继 承接口的各自的 实现
一般来说, SRP 单一责任原则类的设计可以通过以下步骤来实现:
  ①寻找机能 :有什么 样的机能?
  ②汇总机能(定义类) :相似的机能 归总到一个类
  ③考虑修改理由 :列 举类可能的修改理由
  ④分割类:如果类有多个修改理由的场合,把类分割成多个类。或者是多个类因只有一个修改理由而汇总成一个类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值