刚才看到Aero老兄写的《NHibernate学习手记(4) - 持久化类(Persistent class)的设计》的文章,谈到了NHibernate下持久化类的设计时关于关于对象的操作和数据是否应该剥离的问题,想到了我经常看到的两种不同的设计,虽然现在已经没时间再去研究NHibernate了,但还是把这两种实现方法贴出来,大家可以讨论一下。
一.剥离对象的操作和数据
1.实体类
2.对象操作
3.公用的类
这种方式的实现,在前面我曾经写过的一个例子中出现过,持久化类跟我们在开发三层结构系统中的业务实体是一样的。
二.对象的操作和数据在一起
1.实体类
BizObject类的实现如下:
2.公用类
3.测试操作
可以看到这种实现方式,实体类既有业务数据,也有业务操作。哪种实现方式更好一些呢?