原因4:INTERFACE
INTERFACE通俗的讲就是通过一个程序来调用另外一个程序的数据和功能。在模块化和相互访问的世界中,INTERFACE提供了两个部件之间联系的桥梁。在ABAP OO中提供了类与调用者之间独立的INTERFACE,这样就把类和使用者之间分离开来。而在ABAP OP
(oriented procedure)中没有独立的INTERFACE,而是提供了程序之间隐式的INTERFACE和程序和过程之间显式的INTERFACE。我们来进一步研究一下这两种模式的INTERFACE。
面向过程的INTERFACE
面向过程的INTERFACE有一定的局限性。
l 用TABLES或COMMON PART声明的全局变量便是程序之间隐式的INTERFACE,在经典的ABAP语言中一旦用TABLES定义了全局变量,就隐含的定义了屏幕与程序之间的接口。逻辑数据库也使用了这种隐式的接口方式。
l 一个程序的过程可以被另外一个程序调用,是程序之间的功能INTERFACE。程序中的功能模块和form都是公开的。从外边调用的其他程序的form或功能模块的程序可以访问他们所在的主程序的变量。
当用SUBMIT调用程序的时候,除了可以用selection screen上的parameters或select options作为显式的INTERFACE外,程序之间在没有其他显式的INTERFACE了。如果开发人员修改了一个程序的隐式INTERFACE,可能会导致调用这个程序的其他程序失效而开发者确感觉不到这一点。让外部程序无限制的去访问主程序中的数据是有分险的。
OO的INTERFACE
在OO模式中可以定义INTERFACE的三个访问级别:PUBLIC,PRIVATE,PROTECTED。PUBIC表示功能或数据是对外开放的。PRIVATE指明INTERFACE只能在类内部使用而PROTECTED则说明之有其本身或者其子类可以访问。而对于友好类则可以访问PROTECTED和PRIVATE部分。对于子类,其继承了父类的INTERFACE,并可以对其进行扩展。
为了提高稳定性和可重用性,可以把类的PUBLIC部分单独分离出来做为类对外INTERFACE的独立描述。这种INTERFACE没有任何具体的代码,它只有类的全部或部分全局属性。独立的INTERFACE可以被多个类使用,它代表了类的某个具体方面,比如统一持久属性等。因为他们与具体的功能无关,所以一个对象的不同特性可以建立不同的INTERFACE,他们之间的关系如下图所示:
转载于:https://www.cnblogs.com/andyfurong/archive/2011/01/05/1926413.html