Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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 Struts和委托模式_Java_Design Patterns_Jakarta Ee_Struts - Fatal编程技术网

Java Struts和委托模式

Java Struts和委托模式,java,design-patterns,jakarta-ee,struts,Java,Design Patterns,Jakarta Ee,Struts,如何使用struts框架中的委托模式将struts Action类与执行业务逻辑的Java类分开?好的,假设您有一个接口,可以生成一些业务逻辑,例如,问候用户: IBussinessLogic 您使用一个实现该接口的类: 商业逻辑 然后,在动作类中,您可以委托,不,对不起,您必须在业务逻辑类中委托: ... IBussinessLogic bl = new BussinessLogic(); bl.greetUser(myForm.getUsername()); ... 记住,一个行动有几个职

如何使用struts框架中的委托模式将struts Action类与执行业务逻辑的Java类分开?

好的,假设您有一个接口,可以生成一些业务逻辑,例如,问候用户:

IBussinessLogic

您使用一个实现该接口的类:

商业逻辑

然后,在动作类中,您可以委托,不,对不起,您必须在业务逻辑类中委托:

...
IBussinessLogic bl = new BussinessLogic();
bl.greetUser(myForm.getUsername());
...
记住,一个行动有几个职责:控制流程,返回前进。。。但是,它们都不必实现应用程序的业务逻辑。通过使用接口,您可以在将来使用IBussinessLogic的不同实现重新连接应用程序,甚至可以使用依赖项注入或其他技术


这是一个非常简单的委托模式示例。您的行动委托人信任委托人业务逻辑来完成任务。

我必须询问他们的问题。第一:委托模式和外观模式有什么不同?。第二,在struts action类中使用facade的最佳实践是什么,我的意思是在struts action类中,我需要将参数从请求传递给业务来做一些事情,如何使我的facade更通用。在我给您的示例中,委托模式允许将责任划分为不同的层。将业务逻辑留给另一层是一种很好的设计策略。将请求对象发送到业务逻辑层是一个错误的决定。如果你这样做,你就是把业务层绑定到你的web界面上。在您的未来,您将无法使用swing接口等重用您的应用程序,Facade模式允许您更轻松地访问软件库/软件包。它实现了一个比原始库/包复杂度更低的接口。
public class BussinessLogic implements IBussinessLogic{
      public void greetUser(String username) {
            System.out.println("Hello " + username + ".");
      }
}
...
IBussinessLogic bl = new BussinessLogic();
bl.greetUser(myForm.getUsername());
...