【发布时间】:2017-06-05 16:26:03
【问题描述】:
当我的 java 项目变得更大时,总是会弹出一个问题是,是否有一种简单的方法可以引用 super 或 getParent() 无法引用的特定对象。下图应说明我当前的问题:
对于每个 FileListItem,我想建立一个新的 FileListItemController,它需要来自 ProtocolController 的方法。除了通过 mainWindow、FileListContentPanel、FileListItems 传递之外,还有其他方法可以引用 FileListItems 中 main 实例化的 ProtocolController 对象吗?
首先感谢您的所有回答。
我正在为我的项目使用模型、视图、控制模式。
单例模式听起来很有趣,但我的感觉是它不能解决我的问题。下面是一些代码来说明我的问题:
public class Main {
public static void main(String [ ] args) {
ProtocolController pc = new ProtocolController();
mainWindow mw = new mainWindow();
}
}
public class ProtocolController {
File protocol;
public ProtocolController(File protocol){
this.protocol = protocol;
}
public void writeSomethingToProtocolFile(String something){
// write something to th protcol file specified by the object
}
}
public class mainWindow {
public mainWindow(){
FileListContentPanel flcp = new FileListContentPanel();
}
}
public class FileListContentPanel {
public FileListContentPanel(){
int numListItems = 10;
for (int i = 0; i < 10; i++) {
FileListItem fli = new FileListItem();
FileListItemController flic = new FileListItemController(fli);
}
}
}
public class FileListItemController {
public FileListItemController(FileListItem fli){
}
public void addSomethingToProtocol(String something){
// at this point I want to use a method from the ProtocolController class instantiated by the main method
}
}
【问题讨论】:
-
@Martin 你能告诉我们
main方法和任何其他方法的伪代码,以便我们更容易理解你的应用程序的流程和为每个方法创建的实例数上面显示的类?