猿问

请教关于JSF服务层

JSF服务层

我不确定我在JSF中使用MVC环境的方法是否是最好的方法。由于我试图充分利用JSF,我想知道我的服务层(或者用MVC术语来说是模型)应该如何“设计”。

我知道视图-控制器的比率应该是1:1(排除例外情况)。现在,我应该以何种方式设计我的服务层?我应该使用一个大的服务(不要这么认为)?如果不是的话,我应该根据什么来划分我的服务呢?

注意,我的服务将从bean(MVC术语中的控制器)调用,在必要时服务本身将使用JPA调用DAO。

提前谢谢


红糖糍粑
浏览 273回答 3
3回答

holdtom

如果应用程序中没有实体,那么服务和模型实体之间的1:1比例可能还不错。但如果它是一个大型应用程序,就会有太多的服务。服务的数量取决于您正在设计的应用程序的用例。一旦在分析阶段确定了它们,就必须根据它们的功能将它们分组。每个用例组都是一个服务,每个用例都是该服务中的一个方法。每个服务都可以管理几个模型实体(您必须在其中注入执行其功能所需的DAO)。通常,服务管理模型实体的使用例在模型的类图中实现。服务可能遵循“最大内聚/最小耦合”的良好实践。DAO与模型实体的比率为1:1,每个DAO执行实体的CRUD操作和查询。如果方法需要查询2个相关实体,则根据业务概念将其放入更合适的DAO中。在JSF表示层中,我在页面和控制器之间既没有1:1的比例,也没有太多的控制器。我将执行每个服务的用例所需的所有页面分成一个控制器。因此,1:1是控制器和服务之间的比例,在页面执行其用例的控制器中注入每个服务。当然,这些都是一般的原则。你可能有一些特殊的情况在应用程序中打破了他们,但他们是少数。您可能没有太多的服务和控制器,但也不太少,因为这样他们就会有太多的逻辑和字段。你必须达成妥协。

湖上湖

是否经常将一个Hibernate类声明为JSFbean?例如,我有一个“公司”视图(它有属性名称、地址、联系人等)。我有一个问题,因为除了所有的公司属性,我有一个列表<Company>。它给了我一个错误,因为它是一个Hibernate类,所以它试图找到一个类型为List<Company>的列,它并不存在。我能把这个问题暂时解决。
随时随地看视频慕课网APP

相关分类

Java
我要回答