OO的一些思考

来源:互联网 发布:stellarium mac 编辑:程序博客网 时间:2024/04/27 14:52

今天刘san给我们做了一个技术交流,解决了很多一直来困扰着我的关于OO开发的相关问题:

1.在需求分析的阶段,用usecase图的时候,对usecase的记述是否要描述系统相关的动作,因为经常的书籍上是说“usecase是描述的系统和用户之间的交互关系”从这个层面上来说,应该是只要描述系统的输入和输出就好了,但是今天的结论是:描述usecase的时候应该要描述一下系统的一些动作,这个叫白盒usecase,另一种只描述输入输出的叫做黑盒usecase但是黑盒要配合系统时序图来说明需求,然后有人问了,我们做需求分析的时候不是说不能进行how的考虑吗?你的这个系统的一些动作就是how的考虑了吧,其实这里的系统动作,不是一个how的考虑,只是考虑系统的业务逻辑相关。

2。如何判断一个模型的架构是否合理是否正确:一般来说是要符合cohesion,低耦合的标准,高的内聚主要是体现在一个类或者模块的职责是否过多,职责是否是处于不同领域的东西,比如对于数据库的操作,和对UI的操作放到一个类中去了,这样的话,就违背了高内聚的原则,低耦合的,类之间的耦合关系从小到大是这样的:第一是B类是A类的属性,第二,B类中的方法使用到了A类(作为参数或者返回值)第三B类间接的是A类的父类。

3。如何进行类的职责分担,在进行类的职责分担的时候,一般先采用infomation expert的方式,如果有一个职责要进行分担,就去问解决这个问题所需要信息的保存者信息专家,如果专家认为职责过去庞大,就会产生一个新类来分担上述的职责。通过这种方式就能比较容易的避免只有方法没有属性的类的出现,在生成新类的时候,如果没有进行一个好的考虑也会产生不好结果,因为有可能很多的职责都放到一个新类中去了,这样应该做一个控制类,让控制类来决定是否要调用那一个类来完成所需要的职责。