2006年11月02日

DocumentDiffer クラス (5)

DocumentDiffer クラス (4) に引き続き、今回はお遊びコードをご紹介します。

ネタ元は LotusScript に対する不満?(2) Variant の名前でクラスを扱う、というあたり。カッコ良く言えば レイト・バインディング(late binding) を利用した実装ですね。 たぶんね。

DocumentDiffer クラスに、以下のような workWith() メソッドを追加します。 引数としては Variant を指定しています。 指定したオブジェクトと適切に連動する、という仕様書に書くと怒られるようなアバウトな仕様。

今回のコードでは、以前にご紹介した ログ生成用クラス との連携を実装してみます。 ログに変更点を書き出してくれるという目論見です。
Sub workWith(coWoker As Variant)
  If coWoker Isa "CoreLog" Then
    Call coWoker.logText(toString())
  End If
End Sub
が、このコードは僕の環境では動作しませんでした。 謎です。 なにせ、次のコードは動作するのですから...。
続きを読む
posted by yamachan at 01:16| Comment(0) | TrackBack(0) | my設計パターン