私は現在、チャートアプリケーションを書いています。Zedgraph を使用して 2D プロットを表示しています。私のアプリケーションでは、約 8 種類のグラフを表示する必要があり、それぞれがわずかに異なる機能を提供する必要があります。
ここでの問題は、ほとんどのクラスが使用する「基本」機能を持っていることもあれば、一部のクラスが使用する「追加」機能を持っていることもあれば、これらのミックスマッシュであることもあります。これに加えて、グラフに表示されるデータもばらばらで、視覚的な外観もバラバラです。
1 つ以上のチャートに適用できる次の機能を検討してください。
- グラフを自動的にスクロールする機能 (ライブ データを使用)
- グラフを水平方向にズームする機能
- グラフを垂直方向にズームする機能
- ユーザーがチャート内のポイントを編集する機能
- ユーザーがデータの領域を選択する機能
- ユーザーがチャートの目盛りを変更する機能
- グラフを「ズームして合わせる」機能
- 1 つ、2 つ、3 つ、または 4 つの垂直軸を持つ能力
- チャートオーバーレイを表示する機能
- 等
これらをすべてまとめると、一部の機能はすべてのチャートに適用され、一部はチャートのサブセットに適用され、一部は個々のチャートに適用されます。現在、実装する機能の階層はありません。
私の現在の実装では、(はっきりと見えるグローバル機能を提供するために) 基本クラスを使用しており、この基本クラスから 2 つの「フォーク」がありますが、個々のクラスにばらばらの機能を実装する方法に行き詰まっています。複数のクラスから継承する必要がある場合があるため、抽象クラスは使用できませんが、コードはまったく同じであるため、インターフェイスを提供したくありません。
それで、私はここで何をしますか?拡張メソッドを使用して特定の機能を有効にすることはできますか?