我正在创建一个由gui,业务逻辑层和数据库层组成的3层应用程序。所有图层都是客户端。三层体系结构 - 从较低层通知gui
根据多层体系结构的定义,只允许调用相同或更低层并返回相同或更高层。
在我的情况下,我在用户点击一个按钮后做了很多数据库查询。我想在我的gui中显示当前查询表的状态字段。
因为所有图层都在同一个应用程序中,所以我只需从数据库层调用一个方法,同时循环表格以更新状态字段。但这样做会违反规则,只会调用较低层或同一层。
那么在3层架构中更新或通知gui的更低层的“合法”方式是什么?
对不起,花了这么长的时间来回复。我想我会使用oberserver模式。但有一件事情感觉不好:我的观察者需要访问gui元素来设置状态,我将这个对象直接访问gui元素传递给dao层。这个可以吗?或者我应该更好地在gui中创建'Observable'并将其传递到dao层,因为它更通用,并且不必对gui元素做任何事情? – 2013-07-04 10:57:11
您可以通过调用Observable实例上的'notifyObservers(Object obj)'将参数传递给观察者。看看:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Observable.html#notifyObservers%28java.lang.Object%29 – 2013-07-12 15:27:04