Architecture 将数据访问类拆分为读写器还是合并?
这可能是在“讨论”方面,但我真的很想听听你对此的看法 以前,我经常编写处理读写的数据访问类,这通常会导致糟糕的命名,如FoooHandler等。难以命名的类可能设计糟糕的经验法则表明,这不是一个好的解决方案 因此,我最近开始将数据访问分为FooWriter和FooReader,这会产生更好的名称并提供一些额外的灵活性,但与此同时,如果类不太大,我有点喜欢将它们放在一起 读者/作者分离是更好的设计,还是我应该将它们结合起来?如果我把它们结合起来,我该怎么命名这个类呢Architecture 将数据访问类拆分为读写器还是合并?,architecture,oop,data-access,Architecture,Oop,Data Access,这可能是在“讨论”方面,但我真的很想听听你对此的看法 以前,我经常编写处理读写的数据访问类,这通常会导致糟糕的命名,如FoooHandler等。难以命名的类可能设计糟糕的经验法则表明,这不是一个好的解决方案 因此,我最近开始将数据访问分为FooWriter和FooReader,这会产生更好的名称并提供一些额外的灵活性,但与此同时,如果类不太大,我有点喜欢将它们放在一起 读者/作者分离是更好的设计,还是我应该将它们结合起来?如果我把它们结合起来,我该怎么命名这个类呢 谢谢/ErikORM可能是您最
谢谢/ErikORM可能是您最好的解决方案。
或者使用存储库类型模式,使用负责状态持久性的“thingContext”对象
就我个人而言,我使用activeRecord模式,其中保存逻辑被烘焙到基类中,但我将其留给nHibernate风格的存储库模式。在框架类型的情况下,在没有db的情况下允许DDD和测试是非常好的,在这种情况下,我的业务逻辑正在为新的UI赢得吸引力。我现在使用Linq to Sql。这完全解决了问题 但是,如果您没有这个选项(或类似的ORM工具),我看不出有任何理由分开读/写方法。它只是添加了更多的类,并使数据访问变得复杂。我一直按照以下方式设计:
Car car = new Car();
car.Manufacturer = "Toyota"
car.Model = "Camry"
car.Year = 2006;
car.CarID = CarDB.InsertCar(car)
car.OwnerID = 2;
CarDB.UpdateCar(car);
对于需要在同一事务中执行读写操作的数据访问来说,这也是有意义的。如果你把这些类分开,那会去哪里?忽略ORM(不是因为我支持或反对它),我会把它们放在同一个类中。它们都是单一责任的两个方面,将它们分开只会让你看到两个地方,我真的想不出一个好的理由让你这么做 如果有选择的话,我通常会对读者进行子类化,以创建作者 对后端存储进行读写的东西可以称为数据访问器、读写器、IO或存储 那么,以下其中一项如何:
- FooDataAccessor
- 食物存取器
- 食品阅读器
- FooRW
- 富奥
- 食品店
- 食品储藏