准备考试,并要求:
存储库体系结构的关键方面是什么? 区别于客户端-服务器体系结构?
我对此的答复是:
存储库体系结构是可被多个用户访问的集中式数据 组件来存储和编辑数据,对一个组件的更改是 跨所有组件复制,数据在客户端上处理 侧。客户端服务器可以有多个服务器,每个客户端 相互交流以提供服务,数据和服务 在服务器端处理。
那是正确的,您是否会回答这个问题?我还觉得Client-Server和Repository不太容易比较,因为您可以在Client-Server体系结构中运行一个存储库系统。
答案 0 :(得分:0)
我不同意。仓库绝对是一种实现客户端-服务器模式的方法,尤其是在服务器端。拥有一台服务器意味着至少要有一个客户端。即使某处没有集中式数据库,仍然存在可能位于客户端本地的数据层。没有某种类型的数据层,您将只能使用“内存中”应用程序:它们根本没有状态(例如,包括用户设置)。我认为您的问题不仅限于此。
这个想法落在存储库模式后面,是提取数据IO 实施细节的必要条件。它在适当的IRepository
类中隐藏了数据库的某些结构,配置,映射和(很少)验证逻辑。通常这些人是通用的,因此程序员在处理IRepository<T>
时会遇到T
的一些附加约束。因此,有了这样的接口,您可以:1)同时使用概念上不同的数据库,使其他代码不了解它们的主要区别(将传统的SQL与基于图形的数据库一起想象),2)替换不同的数据库而无需进行任何更改外部世界:例如,您决定摆脱MSSQL
并移至Neo4j
或反之,3)最后,但并非最不重要的是,您获得了某些“责任”-数据IO。这是注入验证或日志记录之类的方便扩展点。