【问题标题】:Design Architecture involving Client, Server and Common Project涉及客户端、服务器和通用项目的设计架构
【发布时间】:2017-04-23 19:15:41
【问题描述】:

我有三个项目,一个客户端项目、一个服务器项目和一个共享的公共项目。

普通项目中的代码在客户端和服务端都被引用。在常见的项目中,有一些请求从客户端发送到服务器,在服务器上以某种方式处理它们,然后返回给客户端。

服务器有一个类,该类有一个方法Process(),其中存在每个特定请求的逻辑。

当不同请求的数量很少时,这种方式工作得很好,但是自从实施这种设计后,请求的数量增加了,Process() 方法变得很大。

现在我想拆分请求的逻辑,但我面临的问题是如何移动逻辑。

由于请求存在于公共项目中,并且请求的处理需要仅限于服务器项目(数据库等)的类,我不能只让请求使用 Process() 方法实现接口,然后让请求中的逻辑,因为客户端无权访问服务器特定的逻辑(同样是数据库等)。

所以我的问题是,是否有一种设计模式可以解决我的问题,或者是否有人对如何将逻辑拆分成更小的部分有任何想法?

【问题讨论】:

  • 可以把界面分为客户端、服务器和公共部分吗?
  • 如果我有 3 个不同的接口并且类都实现了它们,你的意思是什么?然后问题是该类(存在于公共项目中)仍然需要具有它不能的服务器端处理逻辑。

标签: c# design-patterns server client


【解决方案1】:

由于请求存在于普通项目中,处理 requests 需要仅限于服务器项目的类 (数据库等)

他们不应该。您需要将您的协议与数据库分开。请求和响应属于协议。数据库操作属于数据访问层。您可以将所有与协议相关的类和文件分离到单独的存储库中,并从服务器和客户端使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2012-11-14
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多