【问题标题】:Session Façade in a Client-Server Application [closed]客户端-服务器应用程序中的会话外观 [关闭]
【发布时间】:2012-08-17 17:55:41
【问题描述】:

在 J2EE 模式会话外观中 - “核心 J2EE 模式 - 最佳实践和设计策略”一书中说:

使用会话外观封装业务层组件并向远程客户端公开粗粒度服务。客户端访问会话外观而不是直接访问业务组件。

我想知道远程客户端意味着什么?因为我正在创建一个客户端服务器应用程序,其中客户端是一个 android 应用程序,而服务器是一个 java 服务器。 Session Façade 是我需要向客户端(Android 应用程序)公开它们两者之间通信所需的 API 吗?

谢谢。

【问题讨论】:

  • 这个问题属于代码架构论坛,因为它将成为讨论

标签: design-patterns jakarta-ee architectural-patterns


【解决方案1】:

Facade 应该为服务器客户端通信(会话)提供简化的接口。所以这个服务(门面)应该聚合这个通信的所有重要方法。

您可以查看设计模式facade 以了解更多信息。

【讨论】:

  • 那么我对模式的具体应用正确吗?
  • 我可能需要看看实现,但你的总体想法是正确的。
  • 我还没有实现,但我有 UML 组件图:i47.tinypic.com/288bc0m.jpg 是分层架构。第一个是表示层,中间是业务层,最后是集成层 对于组件:AC 用于 APPLICATION CONTROLLER,AS 用于 APPLICATION SERVICE。您可以在右侧看到会话外观。
【解决方案2】:

远程客户端可以是任何东西 - Web 浏览器、Android 应用程序或其他一些 Web 服务或应用程序。

现在,当您提供 Facade 时。它将向您展示您的 Android 应用程序(远程客户端)将用于访问服务器端的接口。这样,你的android app就不用担心业务逻辑和数据处理的实现细节了。

您访问和处理数据的逻辑可能会随着时间而改变,但只要您的外观接口相同,您的客户就不必担心任何事情,这就是外观的好处。此外,如果您明天想在 Windows 或 iPhone 中开发应用程序,您可以使用相同的 Facade 界面来访问您的系统,而无需编写新的一行代码。

【讨论】:

  • 感谢您的回答。现在我想知道(我在这里问过stackoverflow.com/questions/12131883/…)是否可以在不使用ejb 的情况下实现会话外观。再次感谢! ;)
  • 要实现 Facade 模式,不必使用 EJB。这就是这种模式的美妙之处。您可以使用任何您想要的好方法来实现它。但是,是否使用 EJB 将取决于您希望如何实现业务层。
  • 非常感谢@Atul,我专注于这本书,这本书非常专门针对 EJB ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多