我还想知道在真实项目中使用MVC模式的普遍程度。许多在线教程似乎将控制器省略并将其与模型混合,而我则被XSTL的业务逻辑功能所困惑。为什么要从JSP视图地址数据源?
除了这些想法,我的问题是:如果你有一个Swing组件,那么该组件中的事件监听器是否通过调用POJO控制器类中的(静态?)方法来更新组件状态,然后该控制器又从由POJO类层次结构和相关持久性组成的模型中获取适当的业务逻辑?
我做过很长时间的自由职业者,几乎90%的项目都涉及到Java Swing(桌面应用程序)。还有很多项目涉及从像Visual Fox Pro这样的语言迁移到Java,这非常痛苦,因为难点不在于思考已经完成的逻辑,而是将混乱的代码转化为符合良好实践和使用设计模式的漂亮代码,这就是为什么创建图表或脑海中的映射来分离代码的概念,遵循模型、视图、控制器的概念是个好主意。
正如之前提到的,MVC有助于拥有漂亮、可维护且易于阅读的代码,只要您遵循编程范例和良好实践即可。
视图:显然,与用户交互的部分(用户界面),在Swing中,您的窗口、框架、面板以及涉及应用程序所需的图形组件的所有代码。
控制器:涉及为应用程序建立的核心或业务逻辑,在这个“层”中,您应该包括功能和“我的应用程序将如何实现目标?”。
模型:与您管理的数据相关联,例如,表示您想要管理或维护的数据的实体和类。
应用MVC并不难,但是正如我之前提到的,有时从非MVC结构迁移代码到MVC结构的应用程序可能会很痛苦。使用MVC开始编码更容易一些。
我习惯使用maven并将我的应用程序分成小的“模块”,当然,您不需要maven,我只是在那个时候发现它很有用,但无论如何,您都可以通过将应用程序分成小项目来尝试练习或习惯MVC,例如:
Java Project 1:application-data-model(包含所有与数据管理相关的代码:实体、DTO、bean、dao)
Java Project 2:application-core-controller(包含所有业务逻辑和功能,如果要使您的代码在与视图交互时更加“透明”,则可以在这里使用Facade模式)
Java 项目 3:应用程序视图界面(包含所有的面板、框架和图形组件)。
按照这种方式工作有助于我(并迫使我)习惯将我的代码分开,并关注于对项目真正重要的部分。例如,如果我正在处理应用程序数据模型,我会专注于数据模型,而不是考虑业务逻辑或图形界面。
长话短说,也许有人能做得更好,但希望我能为你们提供帮助或至少给你们一些指引。
最好的问候。
首先,了解MVC的基本概念:
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
接下来是在Swing应用程序中实现MVC的方法。不要将控制器功能与监听器功能混淆。
使用MVC的想法是减少冗余代码并使代码更易管理。因此,如果你正在进行一些计算/操作,则可以将其移动到控制器中。控制器可以从需要相同内容的不同视图中调用。同样,多个控制器可以使用模型来获取数据。