.NET(へたれな)コネタ Stateパターン? その後

やはり、

Public sub Method1( obj As InterfaceZ)

は可能でしたしかも超簡単に!昨日のエントリー撤回したくらいです。結局、たんなるバグで、インターフェースをパブリックに定義していなかっただけでした。しかも、最初に参考にしたサンプルが悪くて、インターフェースを別のモジュールファイルへ定義していたのです。これを、上記のMethod1が定義されているクラスモジュール内に、一緒にパブリックなインターフェースとして定義しました。これで、InterfaceZを実装しているオブジェクトの各特性にあった、Method1の振る舞いをさせることが出来るようになりました。超ハズいです。

Public Interface InterfaceZ
    Sub MethodA
End Interface
Public Class hoge
     Public sub Method1( obj As InterfaceZ)
       xxxxxxx
     End Sub
End Class 

おかげで少しは設計がすっきりしたように思いますが、新たな要件でこのインターフェースで実装されるオブジェクトが増えてくるとクラスhogeに各実装毎の特例が忍び込んできそうで怖いです。なかなか、オブジェクト間の関係を「疎」に保つのは難しいですね。