java – 使用GUI的内部类的标准?
我想知道内部类的标准实践(在Java中,但我认为它适用于所有OO语言). 所以我的问题是这里的标准解决方案是什么,将MouseListener放在内部类中,将JPanel放在不同的内部类中,还是放在它的单独类中? JPanel在一个内部类中实现MouseListener?为什么? 对我来说最重要的是它有效,但我想知道并理解这些事情背后的标准做法,如果可能的话. 编辑:下面的当前代码的非常简化版本.
和一个单独的类:
也可能是这种情况,将两个类放在同一个文件中是可以接受的吗?我没有设想将MapPanel用于ControllerWindow以外的任何其他内容. 最佳答案
我认为你如何处理这个问题(正如Tom Hawtin评论的那样,GUI标准=泥浆),因为你在单个类中复杂了类的数量与复杂性.如果您只想为演示生成代码,则单个文件可能最简单.如果您想要将生产中的代码投入生产并随着时间的推移进行修改/维护,那么抽象出不同的类几乎肯定是您想要的方式.
例如,如果您将MapPanel嵌入到ControllerWindow中作为内部类,然后又想要用不同类型的MapPanel替换它,那么您需要对ControllerWindow进行大量更新,而不是仅仅针对不同的组件类型交换MapPanel. 使用MouseListener,我倾向于将它包含在MapPanel中,如果它专门处理该组件的事件(也就是说,如果只有MapPanel“知道”点击的含义,它应该是处理该点击的那个).我肯定不会把它放在ControllerWindow中,因为那时你从MapPanel“泄漏”了实现细节. (我能想到的唯一情况是:除了你的MapPanel之外,你还有多种面板类型,它们都需要以相同的方式响应点击,所以不要在每个面板中实现,你可以让ControllerWindow这样做.但即使这样,我不确定代码应该在ControllerWindow中. MapPanel的鼠标侦听器是否是MouseListener的内部类实现,或者MapPanel是否实现它(如上面的代码中所示)可能归结为您喜欢哪种样式的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |