我正在帮助为客户构建一个GWT应用程序,并重写了大部分内容以更好地工作,更短的代码,更快的等等。但是在我所做的所有GUI应用程序中(真的没那么多)有一个弯曲点,你必须放置很多规则并将逻辑从听众转移到一些普通的中介。然后有时候这会弄得一团糟,所以无论你认为自己需要在听众身上做些什么。
我们举一个例子:
虽然一切都在运行,没有已知的错误,但是有一些编码陷阱真的让我很烦恼:
我的方法:
好吧,深入了解更多细节没有任何意义,但我对视觉动作(启用),数据动作(设置表单字段值),现场监听器之间没有明确分离这一事实感到更加不安,检索表单值和实时数据监听器。
确保MVC分离并使自己更好地进行维护会有什么好方法/模式(下次可能)?我知道这不是一个典型的问题,但我已经阅读了所有可以获得的文档,但仍然没有找到一些有用的答案。
答案 0 :(得分:3)
我比MVC更接近MVP。这显然是谷歌打算采用的方式,因此采用它可能意味着你能够 顺其自然 而不是 对抗当前 强>
这对您有何影响?好吧,我相信你应该接受一个更整洁的实现可能涉及更多代码:而不是你希望的“更短代码”。但是,如果它是逻辑结构化的,高效的代码,那么Google编译器应该能够在编译器优化阶段修剪出许多代码。
因此,尽可能多地将逻辑移到模型层中。彻底测试,并验证页面重置/整理的正确级别是否发生(所有这些都可以使用普通的JUnit完成,没有任何UI)。接下来,使用Presenter(Activity)将View绑定到Model:处理交互,填充字段等。
答案 1 :(得分:0)
你可以将不同类别的巨大类划分为不同的JPanel中的GUI。所有面板都在不同的类中实现,扩展了JPanel。猜猜这会对你有所帮助。