如何清除代码中的依赖项注入参数的长列表?

2020-09-01 22:24发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在以干净代码模式创建程序(至...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在以干净代码模式创建程序(至少我尝试过)

在我的代码中,我正在处理模块WM中的数据,尤其是转移订单。 所以我创建了几个类。

ZCL_WM_CA_DATA-管理WM模块上的所有常规数据库选择

ZCL_WM_CA_RULES-要管理WM上的所有通用规则

..

还有

ZCL_WM_TR_DATA,ZCL_WM_TR_RULES,...有关转储单的内容

所有这些类都是使用我的主类工厂注入的。

但是,现在我想我可以拆分其他事物,例如有关材料管理的主题,但是我的构造函数开始拥有漂亮的参数列表(以管理依赖项注入),并且我感到不舒服。

您对此有一些反馈吗?

因为,我花了更多的代码编写干净的代码,创建了更多的专业类,所以我需要链接所有这些

谢谢

弗雷德

9条回答
SKY徐
2020-09-01 22:53

嗨,弗雷德里克,

我不想阻止你。 如果您想培训OO设计,那么这是一种在功能性API之上构建干净的基于Code的OO层的好方法。

我过去看到的大多数OO设计都是由来自非OO业务的人们完成的,它们使用起来很恐怖。 商业利益(解决需求)最小,复杂性最大。

具有OO背景的人(例如WebDynpro ABAP,BOPF或/SCWM/CL * API)进行的OO设计往往很复杂,迟早与原始概念不一致。

我们在开发中承诺,我们不想发明除SAP外的其他("更好")ABAP OO框架。 根据我的经验,如果您尝试一下,最终将需要进行80%的OO兑换和20%的业务需求解决工作。

您是否有多个可注入类(例如ZCL_WAREHOUSE_DATA作为纯虚拟基础,为WM派生的ZCL_WM_CA_DATA和为EWM派生的ZCL_EWM_CA_DATA?

如果是这样,您是否已经具有一个注入器(汇编器)类,该类根据构造计划从所需的可注入实例中构成业务类实例? 如何定义施工计划? 通过"元语言"(也许通过数据库定制)进行通用或刚刚编码。

如果您开始思考并实现这一点,那么您将以80%的比例开始工作。 ;-)

最好的问候,
Matthias

一周热门 更多>