在设计应用程序各个部分之间的交互时需要建议


10

我正在尝试设计基于NetBeans Platform 7的Rich Desktop应用程序的“主要”类。该应用程序将使用HTTP服务,并通过TCP上的“推送系统”接收消息。

  • 我们是3个开发人员,我们希望并行开发模块
  • 应用程序将分层(数据,业务,演示)
  • 我们将使用Presentation Model来分离职责
  • 一些粒度数据(例如bean Person)将由多个屏幕共享(并且可能同时显示在多个屏幕上)
  • ...

我们能够开发单个屏幕,但是我们不知道如何组织整个应用程序并定义每个模块的内容。

  1. 因此,您是否有任何建议(模式/最佳实践/书籍/示例应用程序)来协调/管理整个应用程序内部的交互?
  2. 关于如何定义模块内容的任何建议?

谢谢!


一个小例子来说明我要构建的内容:Foo用户管理应用程序

  1. 启动应用程序
  2. 在左侧的[explorer]中,我们有一个平台列表(列表存储在本地文件中)
  3. 在顶部,我们有一个添加新平台的按钮(也可以通过右键单击来使用)
  4. 通过在平台上双击,该应用程序将调用HTTP服务并检索用户的完整列表。此列表显示在[编辑器]中(在JTable中)
  5. 启动后台进程:通过TCP连接,我们收到消息
  6. 借助工具栏中的按钮,可以添加新用户

如果应用程序是在另一台PC上启动的,并且用户连接到同一平台,则其用户列表将动态更新(添加/删除/状态:{offline / online})(感谢消息)

将来会提供一个聊天模块。

我的问题是(换句话说):决定每个模块内容的任何建议/最佳实践?如果PM(演示模型)是分离视图/业务和数据并创建屏幕的好方法,那么基于PM链接多个屏幕的最佳方法是什么?假设我们开发了聊天模块,如何在右键单击用户列表的上下文菜单中添加条目“ Discuss with ...”?


3
不清楚你在问什么。如何提供一个小例子来说明您的问题?
罗伯特·哈维

Geertjan Wielenga的好职位。包含Tom Wheeler声明(NetBeans Dream Team成员)的声明:java.dzone.com/news/how-to-split-into-modules
Destroyica

Answers:


5

根据您的要求,从核心处理开始,应该使用命令模式,以后可以将模板模式用于请求处理器。依此类推。没有什么叫做主模式。如果有,他们将不再需要我们。

这个想法是要有一个设计,使您可以根据需求进行发展。

我将从创建一个基本模块接口开始,然后将该接口提供给所有人以及周围的一些实用程序。让每个人都基于基本模块实现自己的模块。


3

认为您正在查看由服务支持的非常经典的MVC模式(我假设是RESTful)。关键是将服务与UI分开。这不是因为要引入替代UI,而是因为使您可以清楚了解服务界面的含义。

因此,在考虑getPeople服务时,请确保考虑辅助(非SWING)UI与服务的交互方式。如果您牢记这一点,将提出一个相当灵活/分离的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.