1. ABAP OO更加明确所以更易于使用。例如在使用ABAP OO你的程序的执行流程不再是由运行时隐含的控制。这样你就可以自己去设计程序所执行的流程了而不必像面向过程那样去了解和服从外部控制机制(即报表和dialog screen的事件)。
2. ABAP OO具有更加清晰的语法和语义规则,比如一些容易出错的过时的语句在ABAP OO类中已经明确不能再使用。而在面向过程的程序中这些语法仍然被支持,顶多就是在关键的时候给你报个警告信息。
3. ABAP的一些新技术只能通过ABAP OO来实现。例如所有新的GUI的概念比如SAP Control Framework和BSP只有通过ABAP OO的方式才能够实现。而对于面向过程的ABAP你就只能使用传统的screen和list processing了。
所以即便你在未来的开发中还不准备完全的转型为OO,你可以使用的OO技术来减少错误的隐患以及增强代码的可维护性。下面的部分将会阐述如何达到这一目的。
那么面向过程的ABAP和ABAP OO究竟是孰优孰劣?下面的部分将逐一进行论述。首先先了解以下ABAP OO的年代史。
1. SAP Basis Release 4.5发布了ABAP OO的一个版本,引入了类接口的概念,并可以通过类来创建对象(实例化类)。
2. SAP Basis Release 4.6发布了ABAP OO的完全版本,引入了OO方式的重要概念继承(inheritance),可以通过多个接口来建立一个复合的接口。
3. SAP WEB APPLICATION SERVER 6.10/6.20 SAP basis的下一代版本,在类之间引入了friendship的概念。并引入了对象服务(object service)可以把对象存储在数据库中。
4. SAP WEB APPLICATION SERVER 6.40引入了共享对象(Shared Objects)的概念,即允许在应用服务器的共享内存中存储对象。这样在这个服务器中的任何一个程序都可以访问它。
几个关键点
n ABAP OO是ABAP编程语言的扩展
n ABAP OO 是向下兼容的
n SAP发布ABAP OO是为了进一步增强代码的可重用性
n 随着ABAP OO的发布,ABAP运行时支持面向过程和面向对象两种模式