您的位置:首页 > 编程语言

精通COBOL--11.1.1 提高代码可重用性

2008-04-29 10:12 246 查看

  对于某一部分功能代码,有时可能会在多个程序中被反复用到。此时,最好的方式便是将该功能代码编写为一个独立的子程序,通过子程序调用来对其进行使用。
例如,下面这两段程序都要到一个关于利率计算的功能段。假设利率为1.5,通过RATE变量表示,并假设第一段程序代码如下。
IDENTIFICATION DIVISION.
PROGRAM-ID TEST-PROG-ONE.
AUTHER XXX.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING STORAGE SECTION.
01 RATE PIC S9V9.
01 ORIGIN-DATA1 PIC S9(5).
01 NEW-DATA1 PIC S9(5).
……
*
PROCEDURE DIVISION.
……
PERFORM 100-COMPUTE-RATE.
……
STOP RUN.
……
100-COMPUTE-RATE.
MOVE 1.5 TO RATE.
MULTIPLY ORIGIN-DATA1 BY RATE GIVING NEW-DATA1.
另一段程序代码如下。
IDENTIFICATION DIVISION.
PROGRAM-ID TEST-PROG-TWO.
AUTHER XXX.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING STORAGE SECTION.
01 RATE PIC S9V9.
01 ORIGIN-DATA2 PIC S9(5).
01 NEW-DATA2 PIC S9(5).
……
*
PROCEDURE DIVISION.
……
PERFORM 100-COMPUTE-RATE.
……
STOP RUN.
……
100-COMPUTE-RATE.
MOVE 1.5 TO RATE.
MULTIPLY ORIGIN-DATA2 BY RATE GIVING NEW-DATA2.
通过比较以上两段程序可以发现,这两段程序中利率计算的功能段代码实际上是类似的。虽然以上两段程序都将该功能段代码写为了一个处理过程,便于程序内通过PERFORM语句调用。但是,若将这两段代码看作一个整体,仍然对利率计算的功能段代码进行了重复编写,不够简便。因此,考虑到子程序调用技术,可首先将利率计算的功能段代码编写为如下一个小的程序。
IDENTIFICATION DIVISION.
PROGRAM-ID SUBPROG.
AUTHER XXX.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING STORAGE SECTION.
01 RATE PIC S9V9.
LINKAGE SECTION.
77 ORIGIN-DATA PIC S9(5).
77 NEW-DATA PIC S9(5).
*
PROCEDURE DIVISION USING ORIGIN-DATA NEW-DATA.
MOVE 1.5 TO RATE.
MULTIPLY ORIGIN-DATA BY RATE
GIVING NEW-DATA.
GOBACK.
此时,之前的两段程序便可通过子程序调用的方式重复实现利率计算的功能了。根据以上子程序,可将之前的第一段程序改写如下。
IDENTIFICATION DIVISION.
PROGRAM-ID TEST-PROG-ONE.
AUTHER XXX.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING STORAGE SECTION.
77 ORIGIN-DATA1 PIC S9(5).
77 NEW-DATA1 PIC S9(5).
……
*
PROCEDURE DIVISION.
……
CALL ‘SUBPROG’ USING ORIGIN-DATA1
NEW-DATA1.
……
STOP RUN.
第二段程序相应的改写如下。
IDENTIFICATION DIVISION.
PROGRAM-ID TEST-PROG-TWO.
AUTHER XXX.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING STORAGE SECTION.
77 ORIGIN-DATA2 PIC S9(5).
77 NEW-DATA2 PIC S9(5).
……
*
PROCEDURE DIVISION.
……
CALL ‘SUBPROG’ USING ORIGIN-DATA2
NEW-DATA2.
……
STOP RUN.
可以看到,使用子程序调用后,以上两段程序中都不用重复编写利率计算这一功能段代码了。该功能是直接通过调用利率计算的子程序所实现的。实际上,基于子程序调用技术,此处实现的正是一次编码,多次使用。并且,当使用同一功能段代码的程序越多,采用子程序调用方式的优势就越明显。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: