请教实体的set/get方法问题

11-02-17 oiunt
按照DDD的思想, 实体是不应直接暴露set/get方法,而应该是暴露有实际含义的操作。

但是实体之间以及实体与DTO难免存在拷贝的问题,一般会采用一些拷贝的工具类来实现,那么这里问题就出现了,如果实体不暴露set/get方法,那么拷贝的工具类是无法执行的。另外,对于hibernate这种ORM工具来说,也是需要实体具有set/get方法。

对于以上问题,不知道各位道友是如何处理的?谢谢。

         

1
SpeedVan
2011-02-17 13:48
这个和语言有关,Object和Entity是不同的,所以没办法,set和get都在语言层的话,你就没有这样的感觉了。而且getter可以理解为“望闻问切”,所以“知道了”。而setter是实体的“状态迁移”,你set入去的是下一个关注的状态,如你在玩玩偶,你调整玩偶的姿势就是set,这样的话都可以理解为,所有实体都被外界一条不为人知的线操纵着。

oiunt
2011-02-17 13:54
to SpeedVan.

请问这位道友是如何处理的呢?还是需要给实体都设置set/get方法吧,那么如何控制这些set/get不被调用呢?

SpeedVan
2011-02-17 14:02
setter和getter是必须有的,至于不想被丢用,又想给ORM使用的话,用接口就可以了,接口中除想要的方法外,其他都不写。

oiunt
2011-02-17 17:38
O,这是一种解决方法,谢谢了!

猜你喜欢
2Go 1 2 下一页