原因3:ABAP OO支持一些新的技术
SAP许多新的技术都是基于ABAP OO的,那么在你的项目中必须对面对这一点。许多基础的技术都在ABAP OO中发布了,这些包括:
l User dialog的架构,如SAP control framework(CFW),Business Server Pages(BSP)以及Desktop Office Integration(DOI)等。
l Frameworks for persisting data in the database(Object Service) and Shared Objects(area classes)
l Service classes CL_GUI_FRONTEND_SERVICES for working with data at the presentation server
l Laguage related classes,such as Run Time Type Services(RTTS) classes on CL_ABAP_EXPIMP subclasses for extended EXPORT/IMPORT functionality for example.
SAP的趋势是一些新的基础服务都将用面相对象的模式开发,这就意味着如果想应用一些新的技术那你就不得不接触ABAP OO。如果在一些新的项目中不得不使用ABAP OO的架构强烈建议使用OO的方式进行开发。尽管面向对象和面向过程的混合模式在ABAP程序中是允许存在的,但是不建议这种情况的出现,因为这样反而使成变得更加不易于维护。应尽量避免使用面向过程的一些概念来开发程序,除了下面一些特殊的情况:
l 把屏幕封装在模块池中,一些需要远程调用的功能模块。
l 内部模块化应尽量避免使用subroutine,他们的参数没有方法先进。Subroutine的参数与位置有关而方法是与参数名结合到一块的。另外subroutine支持指针变量。另外subroutine参数的类型的检查只在运行时有效,而method在编译时就检查。建议使用类方法CLASS-METHODS而不是subroutine。
结论
使用的面向对象的方法便是使用现代的软件的开发技术,它解决了一些复杂开发项目的问题。通过本文我们了解到了面向对象的方法有如下好处:
l Better encapsulation
l Support for multiple instantiation
l Better technique for reusing code
l Better interfaces
l An explicit event concept
即便你还不想完全转入ABAP OO,也见你多利用ABAP OO的特性来增强程序的质量
l 尽量使用method
l 使用static method来代替subroutine
l 只有在必要的时候才使用function module
l 尽量把面向过程和面向对象的源码分离开来
l 把屏幕逻辑的开发和应用逻辑的开发分离开来
l 不需要去掉‘UNICODE CHECK ACTIVE’
通过这篇文章的论述,对你程序开发的方式提供了新的思路。我们希望能够说服你转向ABAP OO。当然这种转换并不是让你接触更加复杂的语言,而是为你提供了更好的机会和灵活性来满足你的要求:
l 从最低层次的应用来讲,如果你在开发报表,你可能不需要来实例化类,而使用类的static method来实现报表逻辑,你仍然可以看到你的程序被改进了
l 从较高层次的应用来讲,你可能在一个项目中应用OO的模式。这样的项目涉及到OO开发的很多细节阶段,这也超出了本文的范围。
对于大多开发者来说,情况总是介于两者之间。想其他面向对象的语言一样,面向对象的开发并意味着你都要在UML方面付出太多的精力。不必担心ABAP OO的应用会给你带来更多的麻烦。一旦你真正使用了它,你就会觉得我为什么不早用它呢!
转载于:https://www.cnblogs.com/andyfurong/archive/2011/01/05/1926421.html