java - 设计使用http请求的应用程序的方法

标签 java

例如,在我的应用程序中,我有 3 个逻辑 block ,由用户按以下顺序创建:

第一 block -> 第二 block -> 第三 block

它们之间没有类继承(它们扩展任何其他继承),但存在逻辑继承(例如 Image 包含 区域包含消息)。抱歉,我的表达能力并不强 - 希望您能理解我。

每个 block 都会向服务器发送请求(以在服务器端创建有关它的信息),然后独立处理响应(但使用相同的 http 客户端实现)。就像该图像一样(红线是响应,黑线是请求)。

http://s2.ipicture.ru/uploads/20120121/z56Sr62E.png

问题 是个好模型吗?或者最好创建一个 Controller 类,它自己发送请求,然后处理响应并将结果重定向到我的 block ?或者http客户端的实现应该是 Controller 本身?

P.S.如果我忘记提供一些信息 - 请告诉我。另外,如果我的英语有错误 - 请编辑问题。

最佳答案

这就是为什么我会使用单独的 Controller 类来处理 HTTP 请求和响应:

  • 减少代码重复(您真的需要三个个单独的 HTTP 实现吗?)
  • 如果/当您的应用和服务器之间的通信协议(protocol)发生变化时,您必须重写所有您的类。举例来说,假设您向响应负载添加了另一个字段,而您的应用程序无法处理该字段,那么您现在必须重写 FirstBlockSecondBlockThirdBlock 。并不理想。

修改您的HTTP 客户端实现 Controller 类,以便:

  • 所有 HTTP 请求/响应都经过它
  • 它负责将响应路由到适当的类。

优点?

  • 如果/当您更改通信协议(protocol)时,所有相关代码都位于此 Controller 类中,您无需触及 FirstBlockSecondBlock第三 block
  • 调试您的 HTTP 请求!

关于java - 设计使用http请求的应用程序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954942/

相关文章:

java - Java中如何将时间戳格式转换为日期格式?

java - 从文件中读取 int[][]。 java

java - 这个包含内部类的变量到底做什么?

java - 查找 Java 中字符串数组的差异

Java多线程网络,好还是坏?

java - rmic 编译中未找到类错误

java - 如何通过java查找文件最后修改的用户名

java - Java(Android) 中的 PostMessage() 替代方案

java - Dynamodb 写入操作

java - 如何停止内部重复行<c :forEach>tag of JSTL in JSP page