我们正在寻找创建一个API,它将包装我们的模型和存储库之间的所有内部交互,并提供一种简单的方法来添加和更新系统中的实体。
我正在寻找这个API的消费者的路线:
SystemOder order = SomeClass.GetSystemOrderById("...");
order.amount = 200;
order.InvoiceAddress[0].StreetName = "123 Fake Street";
order.Save();
现在幕后我们仍然是存储库架构的模型,但是为了编写纯粹的业务逻辑,这将位于最终消费者之上并将其隐藏起来。这种架构有没有合适的模式?
只是为了澄清我们显然不想将Save()方法烘焙到核心域模型或类似的东西我们只是想要一个很好的API去除不必要的代码解析集合和调用存储库等。
答案 0 :(得分:0)
听起来你正在寻找类似于存储库模式的东西。 (您在问题中引用了存储库,但我认为您使用该术语代替数据存储?)
引用Martin Fowler的描述。
使用类似集合的接口访问域对象,在域和数据映射层之间进行调解。
可以找到更多信息here
答案 1 :(得分:0)
打开我自己的外观模式,它将封装对象模型和Save()删除等的持久性机制,同时仍保持模型/ DAL的良好分离。这就是mixins对于......非常有用的东西。