Java MVC,减少Gui和核心包之间的耦合
我的程序使用MVC模式,它有gui和由几个类组成的核心包。为了减少核心类和Gui包之间的耦合,所有类都通过协调核心包中的类外观与Gui包通信。 在Gui包中,我有一个主框架类,它根据应用程序的“阶段”添加其他JPanel。例如,用户登录后,LoginPanel将替换为MenuPanel。所有这些面板都声明为扩展JPanel的单独类。Java MVC,减少Gui和核心包之间的耦合,java,swing,model-view-controller,coupling,Java,Swing,Model View Controller,Coupling,我的程序使用MVC模式,它有gui和由几个类组成的核心包。为了减少核心类和Gui包之间的耦合,所有类都通过协调核心包中的类外观与Gui包通信。 在Gui包中,我有一个主框架类,它根据应用程序的“阶段”添加其他JPanel。例如,用户登录后,LoginPanel将替换为MenuPanel。所有这些面板都声明为扩展JPanel的单独类。 问题是,我应该在Gui包中使用一些协调类来与核心包中的Facade协调类通信吗?在这个阶段,我的框架或JPanel将消息发送到核心包中的一个协调类,我在想,如果Gu
问题是,我应该在Gui包中使用一些协调类来与核心包中的Facade协调类通信吗?在这个阶段,我的框架或JPanel将消息发送到核心包中的一个协调类,我在想,如果Gui包也有协调类来减少耦合是一个好主意,这将代表框架和其他JPanel与核心类通信 这种反应不是关于挥杆练习,而是一种避免耦合和增加内聚的通用方法 为了减少耦合, 在没有任何框架的情况下,您需要按照标准Java遵循两种策略:
1. Code to Interfaces instead of Concrete implementations
2. Try to implement Factory design pattern
这种回应不是关于摇摆练习,而是一种避免耦合和增加内聚的通用方法 为了减少耦合, 在没有任何框架的情况下,您需要按照标准Java遵循两种策略:
1. Code to Interfaces instead of Concrete implementations
2. Try to implement Factory design pattern
这个问题在很大程度上取决于实施细节。在某种程度上,您需要对如何与代码的各个方面进行通信有某种“想法”,它们需要能够相互交流,您要做的是尽可能轻松地更改这些API/类的底层实现,而无需更改使用它们的类。根据您想要实现的目标,您可以使用各种技术。记住,Swing已经是(一种)MVC了,没有什么能阻止您将它重新包装到另一个层中,尽管这个问题在很大程度上取决于实现细节。在某种程度上,您需要对如何与代码的各个方面进行通信有某种“想法”,它们需要能够相互交流,您要做的是尽可能轻松地更改这些API/类的底层实现,而无需更改使用它们的类。根据您想要实现的目标,您可以使用各种技术。记住,Swing已经是(一种)MVC了,但是没有任何东西可以阻止您在另一层中重新包装它