Eclipseプラグイン開発を読んでて思いついたんだが、ホストプラグイン(エクステンション
プラグインに提供する拡張点を持ったプラグイン)を書くのは将来の拡張可能性を考慮し
て予め拡張点を仕込まなければならず、これは(設計が)相当難しい。
これはEclipseのホストプラグインに限らず、拡張可能なフレームワークを書く時に出てく
る一般的な悩みなんじゃないかな?
そこで、FlyweightパターンにAOPを組み合わせる。
これはSeasar2(S2Container+JBossAOPの方が拡張する側は書き易い気が・・・)を使っ
て実現できる。
そうすると、意図して拡張点を設計するよりは遥かに容易く拡張できる(点として設計する
必要がないというだけで、クラスが強く閉じてると拡張できないし、開きすぎてると意図し
ない影響を受けて動作が阻害されるから、考慮は必要)。
問題は、どこからでもインスタンスを取得できる(複数のクラスで共有される)事でスコー
プの範囲が限定できなくなる(しかし、限定されると拡張できない)点。
今はただの思いつきだけど、掘ってみると何か出てきそうな予感なんだけど、どうよ?