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