呵呵,顺便问三个个题外话的问题:
1)方法调用和消息传递的关系是什么样的?
2)OO中,对象的关系通过对象引用来实现和通过类似于数据库的ID方式来通过唯一ID来关联有什么本质区别吗?我们真的应该采用对象引用才是合理的吗?有这个疑问是因为我经常发现对象引用在很多时候都是累赘,比如我很多时候只想知道被引用对象的ID即可,但是在对象引用的情况下,会把整个被引用对象查询出来我才会知道其ID。
3)对象的属性有必要都设计为只读吗?只读之后属性只能通过对象自己的方法才能修改;属性的初始值只能从构造函数传进来;但是我发现如果真的都是只读的话,在编码上会很麻烦。尤其是在对象属性比较多的情况下。虽然可以通过值对象将一些具有相同变化率(嘿嘿,变化率这个词语也是从jdon007你那里学来的呢)的属性放在一起从而来减少一些属性,但有时还是会有很多属性,要是这么多属性都通过构造函数进行初始化,那实现起来实在比较麻烦。之所以有这个疑问是因为在DDD中,我了解到领域对象的属性应该是业务安全的,即属性不能被随便更改,否则和普通的数据没区别了。领域对象的状态应该由对象自己去更改,即别的对象发送消息给当前领域对象,当前领域对象接受消息执行消息,从而状态改变。
之所以问这三个问题是因为他们一直困扰着我。始终没想要该如何设计。
[该贴被tangxuehua于2011-07-30 14:40修改过]
[该贴被tangxuehua于2011-07-30 14:51修改过]