常量的OO接口类-建议什么?

2020-09-08 21:34发布

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

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


嗨,

我正在与一位同事一起进行ABAP开发,我们在处理项目常量的最佳方法方面存在一点分歧。 让我列出两种建议的方法:

说我们有一个销售订单开发程序,并且我们知道我们将有许多常数:

VBTYP:SD文档类别
TRVOG:交易组
AUART:销售文档类型

上面的每个字段都有2个常量,因此共有6个常量。

1。 为此,您可以创建销售订单界面,例如 ZIF_SALES_ORDER_CONSTANTS并将每个常量都添加到类中。 您最终得到1个界面和6个属性。

2。 您为VBTYP创建一个接口(ZIF_SD_DOC_CAT_CONSTANTS),将常量添加为属性,为TRVOG创建接口(ZIF_TRANS_GROUP_CONSTANTS),并将常量添加为属性,为销售单据类型创建接口(ZIF_SD_DOC_TYPE_CONSTANTS),然后将两个常量添加为属性。 您以及拥有3个接口的每个接口都有2个属性。

我希望获得一些反馈,以了解是否存在标准或其他开发人员对此有何看法。

问候,马丁。

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

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


嗨,

我正在与一位同事一起进行ABAP开发,我们在处理项目常量的最佳方法方面存在一点分歧。 让我列出两种建议的方法:

说我们有一个销售订单开发程序,并且我们知道我们将有许多常数:

VBTYP:SD文档类别
TRVOG:交易组
AUART:销售文档类型

上面的每个字段都有2个常量,因此共有6个常量。

1。 为此,您可以创建销售订单界面,例如 ZIF_SALES_ORDER_CONSTANTS并将每个常量都添加到类中。 您最终得到1个界面和6个属性。

2。 您为VBTYP创建一个接口(ZIF_SD_DOC_CAT_CONSTANTS),将常量添加为属性,为TRVOG创建接口(ZIF_TRANS_GROUP_CONSTANTS),并将常量添加为属性,为销售单据类型创建接口(ZIF_SD_DOC_TYPE_CONSTANTS),然后将两个常量添加为属性。 您以及拥有3个接口的每个接口都有2个属性。

我希望获得一些反馈,以了解是否存在标准或其他开发人员对此有何看法。

问候,马丁。

付费偷看设置
发送
13条回答
槿木_熙
1楼-- · 2020-09-08 22:06

我不使用常量接口。 我认为没有理由不应该多次定义常量-但是我同意每个应用程序只能定义一次。 您需要注意不要创建不必要的依赖项。

我使用分层的开发方法,其中所有类都通过接口实现。 因此,例如,我具有用于处理alv显示和交互的控制器的接口,用于保存非屏幕逻辑的模型的接口以及用于访问的每个业务/数据库对象的接口

每个接口所需的常量在该接口中定义。 严格根据依赖关系,在实现类中使用来自其他接口的常量。 因此,控制器可以使用模型中的常量,但反之则不能,因为模型必须不依赖于控制器。

在您的特定情况下,我将在模型接口中定义常量。 db/business对象接口可能不会使用这些常量。 我会这样定义它们:

常量:
   开始于c_sd_doc_categories,
     投放类型vbtyp VALUE'',
     订购TYPE vbtyp VALUE'',
   END OF c_sd_doc_categories,

  等等。

显然,您可以为常数选择其他名称!

现在,您可以使用

 IF doc_category EQ c_sd_doc_categories-delivery。
 ... 
悠然的二货
2楼-- · 2020-09-08 22:19

嗨,贝尔,谢谢你的信息。 不幸的是,我们使用的是旧版本的SAP,但在我的SAP系统中"找不到"。 :-(

问候,马丁。

蓋茨
3楼-- · 2020-09-08 22:12

嗨,马丁

这些取决于项目开发指南。 但是无论如何,我更倾向于第二种选择,因为每个接口都可以根据需要用于其他开发中,即使不需要它们也不需要包括完整的接口。

N-Moskvin
4楼-- · 2020-09-08 22:03

您好,Raghu,感谢您指出来。 不幸的是,我们使用的是旧版本的SAP。 我只是读了整篇文章。 很高兴知道,谢谢。

关于马丁,

小c菟菟
5楼-- · 2020-09-08 22:04
昵称总是被占用
6楼-- · 2020-09-08 22:00

没有确切的答案。 最后,这只是样式和偏好的问题。 只要您的应用程序易于理解,测试和维护,那么您选择执行的任何操作都可以。 追求完美是件好事,但这是相当主观的。

如果您想阅读最好和最新的想法,请阅读最近博客中引用的样式指南https://blogs.sap.com/2019/05/03/clean-abap/

它确实建议结构化常量。 它既不建议也不反对使用常量定义接口。 这向我表明,拥有它们并不会增加代码的质量,因此也不会给您带来麻烦。

一周热门 更多>