单一职责

   最近在看敏捷软件开发,所以在此写下学习笔记,也说明自己看过敏捷软件开发吧,哈哈;
学习面向对象技术得有一个循序渐进的过程,面向对象就必然有它的一些原则(其中单一职责就是其一),然后才是方法(模式,才知为什么要这么做,才知复用的好处),先不说这些了,开始我对单一职责的理解吧!(可能会不正确哦,如有不同意见,拜求能够指正);
  单一职责(SRP:The Single Responsibility Principle)就一个类而言,应该仅有一个引起它变化的原因;也就是说只能完成它所在的职责的功能,如:一个专门负责绘图的模块,它负责的是如何在输出设备上输出各种不同的信息,而复杂的模型计算,输入参数就不是它所拥有的职责,对绘图是高内聚的,对模型计算、输入是松藕合的,对模型计算扩展等变化是不可见的;反之将会带来臭味,所谓一改得全改;
  好像概念上是挺简单的,但如何确定单一职责边界问题呢,这也是我一直困扰的问题,也许还得在实践中才能体会得到;就像书上所讲的调制解调器问题:
class Modem
{
    public void dial(string pno);
    public void hangup();
    public void send(char c);
    public void Rec();
}
  似乎这个类很正常,但它却具备了两种不同的职责,一个是连接管理、二个是消息管理;这就得看你在实际中的应用了,看应不应该把它分为两个类。(很隐晦,如果有更好的想法,请讲解一下,先谢谢了:)
  看似简单,其实要在实际中做好这个原则就真的困难了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值