ABAP常量接口-命名约定

2020-09-15 05:09发布

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

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


你好

注意:这不是常见的"一个答案正确"的问题。

我想问一下您关于"常量接口"的命名约定是什么。

例如:

 1)ZIF_C_AREA
 2)ZIF_AREA_CONST
 3)ZIF_AREA_CONSTANTS
 4)ZIFC_AREA"但我认为IF后应该有_
 ... 

我喜欢#1,因为它很短,编写ZIF_C之后的Ctrl + Space可以显示所有可用的常量接口。 但是标准接口使用的是我搜索过的命名为#2和#3的变体...

如果您想分享,您会采取什么方法? :-)

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

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


你好

注意:这不是常见的"一个答案正确"的问题。

我想问一下您关于"常量接口"的命名约定是什么。

例如:

 1)ZIF_C_AREA
 2)ZIF_AREA_CONST
 3)ZIF_AREA_CONSTANTS
 4)ZIFC_AREA"但我认为IF后应该有_
 ... 

我喜欢#1,因为它很短,编写ZIF_C之后的Ctrl + Space可以显示所有可用的常量接口。 但是标准接口使用的是我搜索过的命名为#2和#3的变体...

如果您想分享,您会采取什么方法? :-)

付费偷看设置
发送
11条回答
SC_Yao
1楼-- · 2020-09-15 05:37

不要在接口中使用常量,这不是它们应该用于的常量。

就像马修说的那样,如果您需要它们用于某些内部逻辑,那么您真正想要的是一个抽象类,您将从该抽象类继承它。

Climb_Ma
2楼-- · 2020-09-15 05:43

应该将接口视为与外部方的合同,我认为为此添加常量会使消费者感到困惑,因为它表明该接口期望某种预先指定的行为。 接口使用者在什么情况下需要"常量"?

即使我提到抽象类,这是因为(私有)常量可以在抽象类的非抽象方法中使用,因此实现非抽象子级的人将不需要了解的用法。 它(或它们甚至存在)。

能不能别闹
3楼-- · 2020-09-15 05:49

常量接口也很有用。 我们有一些类似于switch框架的东西,并且在这里使用Interface来处理键。 当然,我们也可以使用抽象类来做到这一点,但是我们更喜欢这种方式。

没有理由为什么会更好,只是因为。

关于命名约定,我们使用Y(Z)_IF_CON _

但是不得不说,整个系统中只有1个(一个!)常量接口,因此它并不是真正的命名约定:-)

Alawn_Xu
4楼-- · 2020-09-15 05:48

在我看来 如果要对衬衫尺寸进行枚举,则应将其定义为对象"衬衫"的"尺寸"枚举。 这样,枚举将连接到具有含义的对象,而不是一个奇怪的接口。

我同意这一点,这肯定更有意义。

如果我需要根据衬衫的"尺寸"选择衬衫的"机架"怎么办? 基本上,如果我想在不同的类中使用"大小",那么该枚举是否也应在"衬衫"的抽象类中定义?

CJones
5楼-- · 2020-09-15 05:27

我想从BOPF的书中抽出一片叶子。 常量接口以_C结尾,例如/BOBF/IF_DEMO_SALES_ORDER_C 。

但是正如马特(Matt)所说,只要这个名字有意义,我就不会为之苦恼:)

@ matthew.billingham

" ...常量接口模式描述了仅使用接口来定义常量,并让类实现了该接口以便对这些常量进行方便的语法访问"

在ABAP中,我们不需要这样做,对吗?

您已经说过&我引用," 会在您确实不想要的地方引起依赖。"您能举个例子吗?

接口lif_shirt_sizes。
   类型:
     以ENUM开头的大小结构mc_size,
       s
       米
       我
       xl,
       xxl
     枚举结尾大小结构mc_size。  " ENUM大小
 结束界面。


 CLASS lcl_demo定义创建私有。


   公共部分。
     类方法:
       主要。
   受保护的部分。
   专用部分。


 ENDCLASS。


 类别lcl_demo实施。


   方法主要。


     数据:大小TYPE lif_shirt_sizes =>大小。


     cl_demo_input => request(
       出口
         文字= |衬衫尺寸|
       改变
         栏位=大小
     )。


     cl_demo_output => display(
       开关串(大小
         当lif_shirt_sizes => mc_size-s时
           然后|小|
         当lif_shirt_sizes => mc_size-m时
           然后|中|
         当lif_shirt_sizes => mc_size-l时
           然后|大|
         当lif_shirt_sizes => mc_size-xl时
           然后|更大|
         当lif_shirt_sizes => mc_size-xxl
           然后|最大|
         ELSE |无效的尺寸|
       )
     )。
   终结法。


 ENDCLASS。


 选择开始。
   lcl_demo => main()。

 

@ joao.sousa2

在什么情况下,界面使用者需要"常量"? -> 作为"恒定"界面的使用者,我需要知道可接受的衬衫尺寸(在这种情况下为枚举类型SIZE)。

当然,我也可以在抽象类中定义枚举。 但是我看不到它的优势。 也许有人澄清

BR,

苏哈斯

一周热门 更多>