• 全部
  • Java SE
  • Java EE
  • J2ME
  • IDE工具
  • 求助
  • 内推招聘
  • 问答

### SRP ???? ####

wangfengsdu 2003-10-19 01:11:36
我贴的帖子怎么看不到啊?
郁闷了,
大家帮忙看看这个帖子把。。。

http://expert.csdn.net/Expert/topic/2371/2371312.xml?temp=.220669
...全文
8 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
liushmh 2003-10-22
Martin说srp原则是可以比较简单的理解,但是真正做到确实很困难,你可以到google的论坛上面搜索,single responsibility principle,可以看到martin的另外一些解释
回复
liushmh 2003-10-21
我认为:
接口是responsibility的一种表现形式。
一个类只有一个职责,比如modem的例子,在某种情况下,recv和send是属于一个职责,是因为比如出现某种reason使得数据的传输格式改变时,recv和send都要做出相应的改变,而dial和hang似乎与这样的改变毫无关系,dial和hang可能在另外一种规则的变化中做出相应的改变,这样就出现了实现如下接口的类出现了多于一种的change的原因。
interface connect
{
recv();
send();
dial();
hang();
}

至于那些接口是同属于一个职责的?
如果由于外部某些规则的改变而使得这些接口中的所有method都会做相应的改写,那么这些接口是属于同一个职责的,那么作为实现者来说,应该同时实现这些接口。

以上是我自己的理解,希望大家继续讨论。

回复
wangfengsdu 2003-10-21
嗯,Martin 是举的这个例子....

我贴一点 Thinking in java中的东西:
While you’re trying to develop or understand a program design, one of the best ways to think about objects is as “service providers.” Your program itself will provide services to the user, and it will accomplish this by using the services offered by other objects. Your goal is to produce (or even better, locate in existing code libraries) a set of objects that provide the ideal services to solve your problem.

Treating objects as service providers is a great simplifying tool, and it’s very useful not only during the design process, but also when someone else is trying to understand your code or reuse an object—if they can see the value of the object based on what service it provides, it makes it much easier to fit it into the design.
回复
wangfengsdu 2003-10-20
Design Pattern Explained的作者认为传统的考虑对象的观点是从
"实现级"考虑的,认为对象是拥有处理方法的数据.
但是更为有用的观点是从"概念级"出发的,认为
对象是一个拥有职责的实体(an entity that has responsibilities).
这些职责给出了对象的行为.

大家也讨论一下这个问题吧..
回复
wangfengsdu 2003-10-20
没有人回答,自己先顶一下,郁闷.....
回复
wangfengsdu 2003-10-19
###重贴一下。。。。。


看Martin 的ASD,提到了OO的有些原则,
有一些东西不太清楚。
他对这个原则描述如下:
(There should never be more than one reason for a class to change )
他把 Responsibility 定义为 “a reason for change”

清楚一点讲的话:Responsibility 和接口的关系是什么?
那些接口是同属于一个职责的?
如何把一个类提供的接口进行分组??

请大家指教! 多谢!!

回复
发帖
Java
创建于2007-09-28

4.7w+

社区成员

Java相关技术讨论
申请成为版主
帖子事件
创建了帖子
2003-10-19 01:11
社区公告
暂无公告