是类型池还是常量类?

时间:2018-11-20 18:27:32

标签: sap abap

Type-pool和为常量创建类之间有什么区别? 什么是更好的? 我的问题是要有大量的常量,并且其他组可以访问。

谢谢

编辑-谢谢您的回答,我将改善我的问题。我需要一些存储常数的东西,我将在程序或其他类上使用它们。基本上,我想知道使用类型池或带有常量的类(仅)是否更好。我可以有多个类或类型库。

2 个答案:

答案 0 :(得分:6)

documentation提到了这一点:

  

由于还可以在全局类的公共可见性部分中定义数据类型和常量,因此类型组已过时,不应再创建。现有的类型组仍然可以使用。

一个通俗易懂的名称接口可以满足您的需求。另一个好处是ABAP OO可以执行更多规则。

答案 1 :(得分:2)

同意@petul的回答,但有一个细节:我建议为每个逻辑常量组创建一个类似于枚举的,而不是在接口中收集常量。

考虑使用新的enum语言功能来指定常量值。

接口可能会被意外地“实现”,在这里没有意义。类可以通过final来防止这种情况。

在每个逻辑组中创建一个类可简化使用IDE功能(如ABAP开发工具中的Ctrl + Shift + A搜索)查找常量的过程。以后很难找到随机地放到接口中的常量。

类允许添加类似枚举的辅助方法,例如转换器,存在性检查,对所有值进行编号。

类还允许添加单元测试,例如确保常量集合仍与基础域的固定值保持同步。