【发布时间】:2021-03-15 16:36:25
【问题描述】:
当我尝试让逻辑层更新表示层时,我被卡住了,因为我已经在表示层中初始化了 GUI 变量。尽管如此,在那之后,我还是找不到从逻辑层访问这些变量的方法。我不认为我应该公开所有变量以获取它们。
我这里有一个例子:
-
更新 multiChoicePanel 的逻辑层方法
public void clearDisplay() { if (currentlyDisplayedQuestion.getQuestionType() == QuestionType.MULTI_CHOICE) { multiChoicePanel.clearDisplay(); } else ... }; -
我声明了 multiChoicePanel 的表示层
private JQEMultiChoiceQuestionScreen multiChoicePanel;
那么这里的问题是如何将 multiChoicePanel 传递给逻辑层?
【问题讨论】:
-
你不应该!只需将必要的信息传递给逻辑层
-
那么,clearDisplay() 方法应该在表现层而不是逻辑层?
-
是的。当然!与 UI 相关的一切都属于表现层。
-
好吧,我们可以说逻辑层负责需要同时使用数据层和表示层的方法吗?
-
逻辑是你实现业务逻辑和访问数据层的地方。逻辑层通过方法暴露其功能,但不访问 UI 层
标签: java design-patterns n-tier-architecture