|
▼YU-TANG さん:
レスありがとうございます。
返事が遅れ申し訳ありません。忘年会の二日酔いにやられていました。
>残念ながら、VBA では実現できません。
>VB.NET のようなオブジェクト指向言語を使うしかないでしょう。
これは承知しておりました。
>ただ、継承と関係ない使い方として、あるクラス foo に手を入れずに
>特定の機能群を拡張可能にしたい場合は、それらをまとめたクラス bar
>のインスタンス自体をプロパティとして公開してしまう方法が有ります。
>この場合は、クラス bar を拡張しても、クラス foo を変更する必要は
>ありません。その代わり、呼び出し方は foo.bar.hoge() のような
>形になりますが。
なるほど、非常に参考になります。
「インスタンス自体をプロパティとして公開してしまう方法」
これがみそなんですね。
>もしかしたらご存知の上であえて使っていないだけかもしれません
>が、Implements ステートメントをヘルプで調べてみてください。
はずかしながら、こちらは知りませんでした。
じっくり調べてみたいと思います。
クラスを作成する意義、カプセル化、ポリモーフィズムなどの概念は
理解しているつもりでしたが、いざ実装となった時に、ここはどうする?
あーここはだめだとクラス作成の経験不足があちこちに出てきてしまいます。
特に、ichinoseさんがこのサイトで何年か前に、
「モジュール間の結合度が強すぎる」と書かれていた事があってその当時
強い衝撃を受けました。(まさに自分のコードがそれそのものだったので)
それから結合度という言葉を意識しながらコーディングしているつもり
なのですが、出来上がる物は残念ながら汎用性のない物になることが
多々あります。まだまだ修行がたりませんね。^^
YU-TANGさんとても参考になりました。ありがとうございました。
|
|