博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABAP OO的八大理由(十四)
阅读量:5161 次
发布时间:2019-06-13

本文共 1404 字,大约阅读时间需要 4 分钟。

学会ABAP OO一些简单的语句之后,你就可以通过开发程序直接告诉系统它需要做什么。需要系统做什么是由你明确告诉你的,系统不会做任何隐含的动作。你不需要为了了解系统一些隐含的动作而去读大量的文档,你只需去看程序本身就可以了。

下面的代码演示了如何把一个面向过程的逻辑数据库程序转换为面向对象的逻辑数据库程序,他会变得更加清晰。
CLASS ldb DEFINITION.
PUBLIC SECTION.
METHODS read_spfli.
EVENTS spfli_ready EXPORTING value(values) TYPE spfli.
PRIVATE SECTION.
    DATA spfli_wa TYPE spfli.
ENDCLASS.
CLASS ldb IMPLEMENTATION.
METHOD read_spfli.
     SELECT * FROM spfli INTO spfli_wa.
        RAISE EVENT spfli_ready EXPORTING values = spfli_wa.
     ENDSELECT.
ENDMETHOD.
ENDMETHOD.
ENDCLASS.
CLASS report DEFINITION.
   PUBLIC SECTION.
      METHODS start.
   PRIVATE SECTION.
      DATA spfli_tab TYPE TABLE OF spfli.
      METHODS: get_spfli FOR EVENT spfli_ready OF ldb
                 IMPORTING values,
                 Display_spfli.
ENDCLASS.
CLASS report IMPLEMENTATION.
METHOD start.
     DATA: ldb TYPE REF TO ldb.
     CREATE OBJECT ldb.
     SET HANDLER me->ge_spfli FOR ldb.
     Ldb->read_spfli().
     Display_spfli().
ENDMETHOD.
METHOD get_spfli.
     APPEND value TO spfli_tab.
ENDMETHOD.
METHOD display_spfli.
     ……
ENDMETHOD.
ENDCLASS.
这里值得注意的是与面向过程的逻辑数据库相比面向对象的有了更加明确的接口。通过PUBLIC部分你可以知道这个类都提供了那些外部服务。为了运行这个报表,你可以把这个类与OO事务代码结合起来使用。不像通过GET隐含的处理事件,report类里有明确的处理事件方法get_spfli。并且数据显示部分也从数据处理部分分离出来了。
比较前后这两个例子,你会发现后者只需通过程序本身就可以理解整个程序的功能了。这里不存在任何黑匣子。同时通过这个例子我们也剔出了一种误解,即程序开发的简化并不意味着肯定就是更少的代码,有时并不是这样。当然,如果你想让一个不懂ABAP REPORT的人弄明白面向过程的ABAP程序,你不得不写大量的注释。
从这个例子我们可以明显地看出ABAP oo使得程序变得更加容易理解,易于维护更加可靠。

转载于:https://www.cnblogs.com/andyfurong/archive/2011/01/05/1926418.html

你可能感兴趣的文章
一步步学习SPD2010--第二章节--处理SP网站(2)--管理网站用户和权限
查看>>
mysql存储过程和函数的操作
查看>>
Kubernetes入门
查看>>
C++中三种正则表达式比较(C regex,C ++regex,boost regex)
查看>>
微软MSN为何会没落的反思
查看>>
Flask 框架 简介
查看>>
用 Python 给程序加个进度条,让你的看起来更炫酷?
查看>>
Java开发笔记(二十八)布尔包装类型
查看>>
Java开发笔记(一百零九)XML报文的定义和解析
查看>>
二、 请按要求对下面的Java代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key的元素。...
查看>>
【DS】2.队列
查看>>
linux c 文件操作。
查看>>
星巴克
查看>>
判断comboBox是否选对了绑定的数据库中的项
查看>>
SQL 一些语句记录
查看>>
开发工作时间及内容 (一)
查看>>
ubuntu配置jdk7.0过程
查看>>
解析java泛型(二)
查看>>
mockito static method wiki
查看>>
Tomcat笔记:Tomcat的执行流程解析
查看>>