Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MVC,减少Gui和核心包之间的耦合_Java_Swing_Model View Controller_Coupling - Fatal编程技术网

Java MVC,减少Gui和核心包之间的耦合

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

我的程序使用MVC模式,它有gui和由几个类组成的核心包。为了减少核心类和Gui包之间的耦合,所有类都通过协调核心包中的类外观与Gui包通信。 在Gui包中,我有一个主框架类,它根据应用程序的“阶段”添加其他JPanel。例如,用户登录后,LoginPanel将替换为MenuPanel。所有这些面板都声明为扩展JPanel的单独类。

问题是,我应该在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了,但是没有任何东西可以阻止您在另一层中重新包装它