PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
11710 | 00/06/12 14:26:37 | RE(10):PB6.5: ユーザオブジェクトのコピーを別名で - グローバル関数の思想 By MIYAHARA |
11705 | 00/06/12 13:26:03 | RE(9):PB6.5: ユーザオブジェクトのコピーを別名で - グローバル関数の思想 By てとらぽっと |
11704 | 00/06/12 13:20:42 | RE(8):PB6.5: ユーザオブジェクトのコピーを別名で - グローバル関数の思想 By てとらぽっと |
11690 | 00/06/09 18:56:35 | RE(7):PB6.5: ユーザオブジェクトのコピーを別名で - グローバル関数の思想 By MIYAHARA |
11666 | 00/06/09 11:57:16 | RE(6):PB6.5: ユーザオブジェクトのコピーを別名で - グローバル関数の思想 By てとらぽっと |
11661 | 00/06/09 11:03:07 | RE(5):PB6.5: ユーザオブジェクトのコピーを別名でつけるスクリプト By M.M |
11659 | 00/06/09 10:33:04 | RE(4):PB6.5: ユーザオブジェクトのコピーを別名でつけるスクリプト By MIYAHARA |
11657 | 00/06/09 09:58:10 | RE(3):PB6.5: ユーザオブジェクトのコピーを別名でつけるスクリプト By MIYAHARA |
11645 | 00/06/08 15:05:01 | RE(2):PB6.5: ユーザオブジェクトのコピーを別名でつけるスクリプト By てとらぽっと |
11644 | 00/06/08 14:41:39 | RE(1):PB6.5: ユーザオブジェクトのコピーを別名でつけるスクリプト By こてちゅ |
11643 | 00/06/08 14:14:10 | PB6.5: ユーザオブジェクトのコピーを別名でつけるスクリプト By MIYAHARA |
カテゴリ:ユーザオブジェクト
日付:2000年06月12日 13:26 発信者:てとらぽっと
題名:RE(9):PB6.5: ユーザオブジェクトのコピーを別名で - グローバル関数の思想
これを書いているうちに、No.11702 のご質問をされていたので
MIYAHARAさんは自力で解法に至られるかと思いますけれども、
他の方の参考になればと、意見を続けさせてもらいます。
>2、今回の場合どのように引数を定義したらいいのか?
確実に uo_A か uo_B のみを引数に取るようにするには、
ちょっとした下準備が必要です。
uo_A か uo_B というのは、共通するプロパティ、関数、イベントが多く存在しますね。
そして関数やイベントは、処理結果そこ違えど、
プログラミング上のインターフェース(関数宣言)は同じように作ってあるはずです。
そうでなければ、どちらかを引数とする関数を作る意味がありません。
この共通部分、特にPublic関数を、
あらかじめ先祖クラス(uo_x とします)を作成し宣言しておきます。
これを継承して uo_A, uo_B を作り、同名の関数・イベントを上書きして
それぞれ独自の処理記述します。
片方(たとえば uo_Bのみ)でしかサポートされない関数は、
uo_x として利用される場合があれば、
uo_x には関数宣言だけして(何もしないで抜ける)、uo_B で本来の働きを持たせます。
uo_B という型でしか利用しないと判っていれば uo_x で宣言をしておく必要はありません。
uo_B しか必要の無い Private関数は、当然 uo_B で宣言します。
そして、グローバル関数の引数には、uo_x型 と宣言します。
こうすると uo_x型かその子孫のユーザーオブジェクトしか引数にとりませんし、
uo_x型 の持つ共通のインターフェースでコンパイル時のエラーチェックが出来ます。
業務の拡大で別処理を行う uo_C を作っても、
グローバル関数はそのまま利用できる確率がグンとあがります。
先祖クラスを設計するという面倒さと、
不慣れな開発者にはスクリプト処理の追跡のし難さ、というデメリットもありますが、
わたしは得られる信頼と柔軟性のほうが大きいと考えています。
下手な先祖クラスを設計すると、
それが制約となって柔軟性を失う結果にもなりかねません。
クラスの設計には、実際時間をかけるべきです。
その間に簡単なシステムなら完成してしまいます…。
その辺は【慣れ】かも。(^-^;
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Sybase SQL Anywhere Client
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.