刚才看到Aero老兄写的《NHibernate学习手记(4) - 持久化类(Persistent class)的设计》的文章,谈到了NHibernate下持久化类的设计时关于关于对象的操作和数据是否应该剥离的问题,想到了我经常看到的两种不同的设计,虽然现在已经没时间再去研究NHibernate了,但还是把这两种实现方法贴出来,大家可以讨论一下。

一.剥离对象的操作和数据

1.实体类

NHibernate下持久化类的两种设计,哪种更好一些?public class User
}


2.对象操作

NHibernate下持久化类的两种设计,哪种更好一些?public class UserDAL
}


3.公用的类

NHibernate下持久化类的两种设计,哪种更好一些?public class EntityControl
}


NHibernate下持久化类的两种设计,哪种更好一些?public class SessionFactory
}


这种方式的实现,在前面我曾经写过的一个例子中出现过,持久化类跟我们在开发三层结构系统中的业务实体是一样的。

二.对象的操作和数据在一起

1.实体类

NHibernate下持久化类的两种设计,哪种更好一些?public class Customer : BizObject 
}


BizObject类的实现如下:

NHibernate下持久化类的两种设计,哪种更好一些?public class BizObject 
}


2.公用类

NHibernate下持久化类的两种设计,哪种更好一些?public class ObjectBroker 
}

NHibernate下持久化类的两种设计,哪种更好一些?public class Sessions
}


3.测试操作

NHibernate下持久化类的两种设计,哪种更好一些?[TestFixture]
NHibernate下持久化类的两种设计,哪种更好一些?
public class CustomerFixture 
}


可以看到这种实现方式,实体类既有业务数据,也有业务操作。哪种实现方式更好一些呢?

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-13
  • 2021-11-12
  • 2021-05-17
  • 2021-12-13
猜你喜欢
  • 2021-07-12
  • 2021-07-05
  • 2021-10-14
  • 2021-08-16
  • 2021-07-27
  • 2021-08-09
  • 2021-10-06
相关资源
相似解决方案