|
这个主题共有 8 回复 / 1 页 [
]
|
|
|
|
|
|
值对象是不可变的?
|
发表: 2008年04月10日 13:54
|
回复
|
|
|
值对象是不可变的是不是指值对象的属性不可更改想JAVA的STRING不变类一样?那为啥ForumThreadState中有setXXX()的方法呢?
|
|
|
|
|
|
re:值对象是不可变的?
|
发表: 2008年04月10日 14:19
|
回复
|
|
|
|
|
|
|
|
re:值对象是不可变的?
|
发表: 2008年04月10日 14:19
|
回复
|
|
|
|
|
|
|
|
re:值对象是不可变的?
|
发表: 2008年04月10日 14:23
|
回复
|
|
为啥不把ForumThreadState设计成不变类呢?属性都是FINAL的,从数据库中读出数据后直接用构造函数设值,这样不是更彻底的不变吗?
只有GET方法没SET方法 [该贴被r7raul于2008-04-10 14:24修改过]
|
|
|
|
|
|
回复:re:值对象是不可变的?
|
发表: 2008年04月10日 15:01
|
回复
|
|
|
|
|
|
|
|
re:值对象是不可变的?
|
发表: 2008年04月10日 17:12
|
回复
|
|
|
我看了论坛刷新的时候每次都NEW 了一个forumState,为啥不共享一个forumState呢?还有forumState不需要持久化到数据库中,它的生命周期啥时候结束?与客户类的值对象地址有啥区别?值对象地址是要持久化的?
|
|
|
|
|
|
回复:re:值对象是不可变的?
|
发表: 2008年04月10日 17:56
|
回复
|
|
1.刷新是一个技术上的要求和共享的语义不一样。 2.forumState的生命周期不同于forum,随时都有可能结束 并生成新的forumstate. 3.值对象和持久到数据库中没有多少关系。只要注意new 完后更新一次后不再更新 4.值对象共享结合Flyweight。
5.如果有共享要求,像forumState一样存在多个属性的话不利于共享 ?
|
|
|
|
|
|
回复:回复:re:值对象是不可变的?
|
发表: 2008年04月11日 21:27
|
回复
|
|
|
|
|
|
|
|
回复:回复:re:值对象是不可变的?
|
发表: 2008年04月14日 09:13
|
回复
|
|
pub基本正确
值对象不可变的意思和主要指其生命周期的一致性,并不是说技术上不能修改
|
|
|
|