存储库架构与客户端服务器架构?

时间:2018-10-29 20:00:39

标签: architecture repository client-server

准备考试,并要求:

  

存储库体系结构的关键方面是什么?   区别于客户端-服务器体系结构?

我对此的答复是:

  

存储库体系结构是可被多个用户访问的集中式数据   组件来存储和编辑数据,对一个组件的更改是   跨所有组件复制,数据在客户端上处理   侧。客户端服务器可以有多个服务器,每个客户端   相互交流以提供服务,数据和服务   在服务器端处理。

那是正确的,您是否会回答这个问题?我还觉得Client-Server和Repository不太容易比较,因为您可以在Client-Server体系结构中运行一个存储库系统。

1 个答案:

答案 0 :(得分:0)

我不同意。仓库绝对是一种实现客户端-服务器模式的方法,尤其是在服务器端。拥有一台服务器意味着至少要有一个客户端。即使某处没有集中式数据库,仍然存在可能位于客户端本地的数据层。没有某种类型的数据层,您将只能使用“内存中”应用程序:它们根本没有状态(例如,包括用户设置)。我认为您的问题不仅限于此。

这个想法落在存储库模式后面,是提取数据IO 实施细节的必要条件。它在适当的IRepository类中隐藏了数据库的某些结构,配置,映射和(很少)验证逻辑。通常这些人是通用的,因此程序员在处理IRepository<T>时会遇到T的一些附加约束。因此,有了这样的接口,您可以:1)同时使用概念上不同的数据库,使其他代码不了解它们的主要区别(将传统的SQL与基于图形的数据库一起想象),2)替换不同的数据库而无需进行任何更改外部世界:例如,您决定摆脱MSSQL并移至Neo4j或反之,3)最后,但并非最不重要的是,您获得了某些“责任”-数据IO。这是注入验证或日志记录之类的方便扩展点。