|
|
|
95. モジュールかサービス・プログラムか? |
|
ILEプログラム作成(CRTPGM) でモジュール(*MODULE) をバインドして作成するのと
サービス・プログラム(*SRVPGM) をバインドして作成するのとでは
どちらを選択すべき なのであろうか?
モジュール(*MODULE) をバインドする方法では
1. CRTRPGMOD で *MODULE を作成
2. CRTPGM で *MODULE をバインドして *PGM を作成
これに対してサービス・プログラム(*SRVPGM) を作成してバインドするのは
1. CRTRPGMOD で *MODULE を作成
2. CRTSRVPGM で *MODULE から *SRVPGM を作成
3. CRTPGM で *SRVPGM をバインドして *PGMを作成
のように手間が少しかかる。
しかし *MODULE が変更された場合は *PGM を再作成しなければならないが
*SRVPGM が変更されたときは *PGM を再作成する必要はない。
元々モジュール化する目的はオブジェクト指向に基づいてオブジェクトの
再利用にある。 モジュールの個数が増えてきたときには、モジュールを
変更しようとすると、どの *PGM を 再コンパイルしなければならないのかを
調べる必要があり、これは管理上大変なことになるのは 容易に想像がつく。
VC++ のコンパイラーでも同じ構造を持っているが
*SRVPGM とは Windows の世界でいう DLL に相当する。
DLL が変更されたからといって その DLLを使用している EXE を再作成する必要はない。
DLL はそのような目的で使用されているのである。
さらに *SRVPGM では実行時に元の *MODULE が存在している必要はない。
大規模開発だけなく拡張性に富んだ開発を指向するのであれば
サービス・プログラム (*SRVPGM) の使用を強くお勧めする。
|
|
|
|
|