用随笔写随想,呵呵
上次谈到了对象的抽象是根据对象的行为来进行的,其实对象建立的好坏就在于,行为何责任的分配是否合理.
什么是责任的分配呢? 举个例子.就拿常见的shape族来说吧,circle rectangle都是一个个的shape,他们可能有计算面积的方法,可能有display的方法.那么我们是在circle类中做这些事呢?还是交给一个drawing对象去做然后做过在circle中使用一下drawing,还是直接在circle类中实现呢?什么责任自己负责,什么责任交给他人?这就是对象建立期间需要考虑的问题.
一种简单的方法就是一个对象一个责任,这也就是所谓的单一责任链原则.当然一个具体对象不太可能只有一个责任,但是对于接口以及抽象类,是应该做到这点的.
那么我就想到了有关uml建模的一个问题.是先画类图呢?还是行为图?通常我们都是先画类图在去画行为图,我一直以来也是这么做的,不过在上面的推理下,似乎先画行为图更符合对象建立的过程,而且回想我已往画行为图的时候,更多的是对大脑中已有设计的完善和检验,还有一个功能就是作为软件的文档供别人理解系统用的.似乎它应该对对象的建立起到作用,因为它就是详细描述对象行为的啊.而且,在以往做行为图的时候发现的问题确实也会调整我对对象进行修改.那么,有没有一种先画行为图的画法呢?感觉又有点不太习惯,比如用together的时候可以把类图中的方法挂到弧上,而且没有类又如何标识行为图上的一些元素呢?
希望大家发表意见,有谁对此种方法有经验?还是我乱想的
上次谈到了对象的抽象是根据对象的行为来进行的,其实对象建立的好坏就在于,行为何责任的分配是否合理.
什么是责任的分配呢? 举个例子.就拿常见的shape族来说吧,circle rectangle都是一个个的shape,他们可能有计算面积的方法,可能有display的方法.那么我们是在circle类中做这些事呢?还是交给一个drawing对象去做然后做过在circle中使用一下drawing,还是直接在circle类中实现呢?什么责任自己负责,什么责任交给他人?这就是对象建立期间需要考虑的问题.
一种简单的方法就是一个对象一个责任,这也就是所谓的单一责任链原则.当然一个具体对象不太可能只有一个责任,但是对于接口以及抽象类,是应该做到这点的.
那么我就想到了有关uml建模的一个问题.是先画类图呢?还是行为图?通常我们都是先画类图在去画行为图,我一直以来也是这么做的,不过在上面的推理下,似乎先画行为图更符合对象建立的过程,而且回想我已往画行为图的时候,更多的是对大脑中已有设计的完善和检验,还有一个功能就是作为软件的文档供别人理解系统用的.似乎它应该对对象的建立起到作用,因为它就是详细描述对象行为的啊.而且,在以往做行为图的时候发现的问题确实也会调整我对对象进行修改.那么,有没有一种先画行为图的画法呢?感觉又有点不太习惯,比如用together的时候可以把类图中的方法挂到弧上,而且没有类又如何标识行为图上的一些元素呢?
希望大家发表意见,有谁对此种方法有经验?还是我乱想的