2020-09-27 06:41发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
假设我有一个控制器,可以根据产品代码加载产品。 我是否需要创建一个Facade类来委派给一个Service类,并将其委派给一个Product DAO?
我在想,对于像这样的简单情况,可以直接将DAO注入到控制器中,因为添加其他两个类不会带来任何附加值。
如果您使用Hybris文档或其他参考网址中的参考URL来备份您的答案,我会很高兴。
谢谢
不应推荐在控制器上注入dao层的方法。HybrisCommerce平台和加速器代码大量使用了Spring框架。 因此春季将始终遵循MVC模式。杂草中的每一层都有其重要性和清晰的分隔
层说明:
DAO层:DAO可以包含多种用于典型CRUD操作的方法。 对于Hybris Commerce项目,建议将所有"灵活搜索"查询放置在数据访问对象中。
服务层:服务的目的是覆盖业务逻辑。
Facade:Facade用于将业务逻辑暴露给前端控制器,并且仅应使用Facade,服务,转换器,填充器和数据传输对象(DTO)
进行层分离的主要目的是避免层之间的松散耦合和清晰分离,从而简化开发阶段。
因此,您的意思是我必须创建调用HouseService.loadHouseById()并调用HouseDao.loadHouseById()的HouseFacade.loadHouseById()吗? 是不是太过分了? 代表链?
Hybris不要求编写立面和服务,但这不是一个好的建议做法。 您将失去可扩展性。 每个层都有各自的关注点,最好使用分层体系结构来支持可扩展性和Omni通道。
例如-如果您的应用程序同时支持Web和移动设备,则您可能会使用不同的控制器。 理想情况下,您将逻辑放在服务层,并在外观层填充DTO。 如果您遵循此步骤,则可以在Web和移动控制器中使用相同的逻辑/服务和外观。
Ex-如果使用分层体系结构,则很容易在hybris中自定义OOB代码。 如果您需要覆盖购物车计算逻辑,那么只有在拥有自己的服务并扩展购物车计算服务的情况下,您才可以这样做。
有关更多详细信息,您可以参考hybris建议的编码标准- https://wiki。 hybris.com/display/hybrisALF/Coding+Standards
我不明白您的第一个示例。 最后,您可能都需要两个控制器。 如果您需要逻辑,则当然必须创建服务,而不是将其放在控制器层上。 我要强调务实和YAGNI。
最多设置5个标签!
不应推荐在控制器上注入dao层的方法。HybrisCommerce平台和加速器代码大量使用了Spring框架。 因此春季将始终遵循MVC模式。杂草中的每一层都有其重要性和清晰的分隔
层说明:
DAO层:DAO可以包含多种用于典型CRUD操作的方法。 对于Hybris Commerce项目,建议将所有"灵活搜索"查询放置在数据访问对象中。
服务层:服务的目的是覆盖业务逻辑。
Facade:Facade用于将业务逻辑暴露给前端控制器,并且仅应使用Facade,服务,转换器,填充器和数据传输对象(DTO)
进行层分离的主要目的是避免层之间的松散耦合和清晰分离,从而简化开发阶段。
因此,您的意思是我必须创建调用HouseService.loadHouseById()并调用HouseDao.loadHouseById()的HouseFacade.loadHouseById()吗? 是不是太过分了? 代表链?
Hybris不要求编写立面和服务,但这不是一个好的建议做法。 您将失去可扩展性。 每个层都有各自的关注点,最好使用分层体系结构来支持可扩展性和Omni通道。
例如-如果您的应用程序同时支持Web和移动设备,则您可能会使用不同的控制器。 理想情况下,您将逻辑放在服务层,并在外观层填充DTO。 如果您遵循此步骤,则可以在Web和移动控制器中使用相同的逻辑/服务和外观。
Ex-如果使用分层体系结构,则很容易在hybris中自定义OOB代码。 如果您需要覆盖购物车计算逻辑,那么只有在拥有自己的服务并扩展购物车计算服务的情况下,您才可以这样做。
有关更多详细信息,您可以参考hybris建议的编码标准- https://wiki。 hybris.com/display/hybrisALF/Coding+Standards
我不明白您的第一个示例。 最后,您可能都需要两个控制器。 如果您需要逻辑,则当然必须创建服务,而不是将其放在控制器层上。 我要强调务实和YAGNI。
一周热门 更多>