gpt4 book ai didi

oop - 从 OOP 的角度来看,在接口(interface)中声明类型/属性是否正确?

转载 作者:行者123 更新时间:2023-12-04 15:42:19 26 4
gpt4 key购买 nike

在接口(interface)中定义类型是否正确?那么属性呢?

有些编程语言只允许接口(interface)的方法签名,但在 ABAP 中我正在考虑做类似下面的代码,甚至添加更多属性,我不确定该方法是否是正确的 OO 设计:

INTERFACE zif_notif_note.
TYPES: BEGIN OF ty_note_id,
notif_num TYPE qmnum,
activity_key TYPE aknum,
END OF ty_note_id.
DATA: id TYPE ty_note_id READ-ONLY.
METHODS get_id
RETURNING VALUE(r_id) TYPE ty_note_id.
ENDINTERFACE.

如果我需要使用这个类型作为另一个类的输入参数怎么办?那我应该更好地定义 DDIC 结构吗?

最佳答案

关于您的第一个问题:没有什么可以反对在接口(interface)中定义类型。

第二个问题...

您可以在 ABAP OO 中完成许多在其他面向对象语言(如 Java 或 C++)中无法完成的事情。例如,你可以定义一个 FINAL ABSTRACT CLASS 这是无意义的,你可以在一个接口(interface)中定义静态方法 (CLASS-METHODS),在我看来这是对对象的异端面向编程。

我从来没有定义属性,除非它们是接口(interface)中的CONSTANT,因为没有理由这样做。它们将被自动标记为 PUBLIC,这实际上打破了封装原则。

所以答案是:这是可能的,但在这样做之前要三思而后行,因为它可能会破坏实现接口(interface)的类的封装。

关于oop - 从 OOP 的角度来看,在接口(interface)中声明类型/属性是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com