我目前正在设计我的应用程序的持久性框架......并且我正在讨论抽象的两种解决方案。什么是数据层的正确抽象数量?
选项1.第一,和更简单的(但可能更耦合到所述数据库是2分层的方法。在这种方法中,数据映射器拉来自数据库的数据,并建立业务实体。
粗糙图工作流程:
UserEntity <= UserMapper => Database
选项2第二个,更灵活(但可能矫枉过正)的方法是一个3层的方法在这种方法中,我们有第三个对象是谁的工作是单独说话。数据库,并返回一个将数据遗留给Data Mapper,然后Data Mapper创建一个对象。
粗糙图:
UserEntity <= UserMapper <= UserDataRetriever => Database
显然,第一种方案的好处是,它更简单,因此更快地创建。第二个选项的好处是更换我的持久性方法更容易,因为我只需要将DataRetriever的连接更改为DB(以及相关的查询)。
由于本网站的规模将快速增长,因此我想选择最灵活的选项,而不必进入反模式的土地。
哪个更好?
感谢您的回应 - 在这种情况下,回购知道要讲瓦特/分贝?它是一组为每个实体构建的类吗?我会自己研究更多... – johnnietheblack 2012-03-15 16:23:54
这是一组为每个根建立的类,它是聚集。即一个用于Order + OrderLines + OrderHistory等。 – jgauffin 2012-03-15 18:28:52