忍者ブログ
Since 14.Jan.2009:08:29 プログラミングと絵のブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


今日は珍しくVBScriptネタ
大嫌いだけど会社で使うのでしょうがない

主にクラスの使い方と擬似的な継承について

class SampleModel
private xxx

private sub Class_Initialize
set xxx = new Parent
end sub

function SampleMethod1(a, b)
SampleMethod1 = xxx.SampleMethod1(a, b)
end function
end class


基本的にこんな感じ
Class_Initializeというメソッドがコンストラクタ
VBScriptはコンストラクタに引数付けれないっていう腐った言語

まぁそれは置いといて、コンストラクタで
親扱いしたいクラスをインスタンス変数にset
VBScriptはオブジェクトの代入にsetを付けないといけない腐った言語

あとは同名のメソッドを定義して、
その中で継承したいメソッドに引数渡して実行結果をreturn
メソッドに代入する謎な方法でreturn
値を返しても処理は続く
VBScriptはreturnに相当する命令がない腐った言語

これで擬似継承ができた
てかこれ継承?
継承ってのは明示しなくても親のメソッド使えるのが普通だよ

で、これを

dim Sample
set Sample = new SampleModel


として別名でset
何故ならVBScriptはクラスメソッドが使えない腐った言語

こうして別名を付けないとSample.SampleMethod1みたいに使えない
せめてStatic宣言くらい実装しとけよ・・・
もしくはRubyみたいにself.methodとか
Me.MethodもThis.MethodもSelf.Methodも試したけど駄目だった

クラスメソッドは全部この方法でインタフェースみたいに実装して、
別に分けておくのがコツかな
インスタンスメソッドは普通に使えるから、
インスタンスを生成するやつに擬似継承でクラスメソッドも埋め込む感じ

Rubyに比べたら何十、何百倍も大変だけど
PR

Comment
Name
Title
Mail
URL
Comment
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
[63] [62] [61] [60] [59] [58] [57] [56] [55] [54] [53
«  Back :   HOME   : Next  »
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
ブログ内検索
プロフィール
HN:
uguisu_an
年齢:
34
性別:
男性
誕生日:
1989/08/20
自己紹介:
基本的にテキトー
最新コメント
[10/01 くゆる]
[09/21 uguisu_an]
[09/17 mayigo]
[07/17 uguisu_an]
[07/15 shinh]
最新トラックバック
アクセス解析
フリーエリア
P R
忍者ブログ [PR]