我有2个模块:BrowserLibrary和BrowserViewer。
浏览器包含gui,就像任何浏览器一样。
所以在BrowserLibrary模块中我有一个像这样的类:
public class BrowserController implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getSource().getVarName() == "navButton")
System.out.println("clicked");
}
}
并在BrowserViewer模块的BrowserTopComponent.java中:
private javax.swing.JButton navButton;
navButton.addActionListener(BrowserController);
我不确定这是否是我应该追求的正确设计。 BrowserLibrary是否应仅用于加载第三方JAR而不是其他内容?如果是这样,我最终会得到3个模块:BrowserLibrary,Browser,BrowserViewer?在这种情况下,依赖项将如何工作?浏览器是否依赖于BrowserLibrary,而BrowserViewer依赖于浏览器?
所以在Browser模块中,我会有BrowserController类来实现ActionListener?
另外,如何获取e.getSource()对象的变量名?在这种情况下,“navButton”是JButton的变量名。
我应该使用Lookup吗?怎么会被纳入这里?
答案 0 :(得分:0)
模块的数量和组成应反映您的设计的模块性。一个很好的问题是“这个模块可以在没有其他模块的情况下重复使用吗?”如果答案是否定的,那么所讨论的模块是紧密耦合的,应该只是一个模块。例如,可以独立于浏览器使用处理HTTP协议的模块。在浏览器中导航的操作可能以浏览器为中心,可能无法单独使用。
变量是运行时实例,但变量名实际上是程序员用来引用变量的编译时工件。也就是说,所有swing组件都有一个可用于识别的名称属性。请注意,开发人员有责任确保唯一性。