.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に各実装毎の特例が忍び込んできそうで怖いです。なかなか、オブジェクト間の関係を「疎」に保つのは難しいですね。