2011-02-05 29 views
1

我是学生项目的一部分,我们将为使用Java EE的公司开发产品。作为项目中的“首席架构师”,我负责组织一个良好的设计,这对于进一步的扩展应该是灵活的。帮助解决设计问题(扩展通用界面)

背景信息:我们将开发一个带拖放GUI的网站,可以将数据源与数据操作连接起来,以便对特定数据执行操作。图形用户界面应该是通用的,可以与即将推出的产品集成。这意味着我们无法编码到表示层的实现。相反,我们将使用一个接口来定义对于各种产品可能的数据操作类型。但是,每种产品都可能会对产品进行特定的数据操作(因此可以通过更多方法扩展界面)。

我在上面的场景中遇到的问题是,我没有看到我们如何将这些“产品特定的数据操作”传递给GUI,并且除了通用接口外,我们还拥有这些数据处理操作...

现在我有一些来自公司更多有经验的程序员的讨论,他们告诉我,有这个问题的共同解决方案 - 更具体地说被称为“观察者模式”。他们在白板上画图像[1]并解释说,这将是可能的“注册”到第三方(getApplicationContext),其反过来又可以传达我们的产品特定的接口。他们解释说,这是摆脱那些讨厌的循环依赖的常见问题。

我现在已经看了一下观察者模式,以及它是如何工作的,而且我还没有真正了解我应该如何解决设计问题。有人可能试图解释在我的具体情况下会如何发生?了解它如何与“主题”和“观察者”协同工作,我没有真正的问题。

这里是我们使用特定产品的参考的设计的UML图。这是不受欢迎的,也是我们想要解决的问题。

(也许我这都错了......)

我很抱歉,但因为我是一个新用户,我不能图片更改为正确的...这是一个更新的UML图的链接:

http://i55.tinypic.com/2mbfno.png

+0

问题太不清楚了吗?我想这应该是在软件设计中重新存在的问题...我只是试图做一个好工作,学习那些我不明白的事情,这样我就可以进行未来一周尽可能的好。 – Sebastian 2011-02-06 13:07:58

回答