vbscriptでメソッドチェーン

メソッドチェーンというとJQueryなイメージですが、vbsでもやってやります。

方法は同じで、メソッドの戻り値として自身を返します。

Class Chain

  Public Message
 'メソッド
  Public Function Say(str)

    msgbox str

    Me.Message = Me.Message & str
    'チェーン
    Set Say = Me

  End Function

  Sub Class_Initialize
    Me.Message = ""
  End Sub
End Class

Dim obj:Set obj = New Chain

'いざチェーン
obj.Say("へろー").Say("わー").Say("る").Say("ど")

'ちゃんと覚えてる
msgbox obj.Message


SQLのクエリ生成クラスとか思いつきましたが、こんなイメージでしょうか


Dim obj:Set obj = New QueryBuilder

'SELECT
obj.Select("*").From("user").Where("id=1")

'取得
msgbox obj.toString()

'INSERT
obj.Insert("user").val("id",2).val("name","次郎")
'取得
msgbox obj.toString()

'UPDATE
obj.Update("user").val("kana","次郎").Where("id=2")
'取得
msgbox obj.toString()

INSERTもUPDATEと同様にcolumn=valueな形でやりたいですが、そもそもADOがありますね。