Must the repository have persist functionality?
在福勒的《企业应用程序体系结构模式》一书中,没有提到存储库模式的持久特性。"持久特性"是指更新、保存、添加或删除实体的特性。只是一组域对象上的纯匹配机制。
另一方面,让我们来看看Mike Hadlow的博客文章,它使用带有linq to sql的IRepository模式命名。有一些具体的持久方法,如插入和删除。
那么,应该如何实现存储库模式呢?你们能给我指出一个好的"真正的"存储库实现吗?我对这个话题有些失望。
事先谢谢!希望你的帮助!
存储库应该像内存中的数据集合一样工作。您选择的命名法,无论是添加还是插入、删除还是删除、选择还是获取,都不重要。
您可以将存储库分为两个接口,然后拥有用于获取/选择数据的readOnlyReportory和用于添加/更新/删除数据的writeRepository。没关系。重要的是,您的应用程序或业务代码使用存储库来与数据交互,就好像它已经加载到内存中一样,因此您不必处理与业务或应用程序代码混合的SQL查询。
更新
因为我们讨论的是一个模式,所以没有一个"真正的"存储库接口或实现。可能有许多不同的实现都遵循类似的模式。