我目前正在编写一个图表应用程序。我正在使用 Zedgraph 来显示 2D 图。在我的应用程序中,我需要显示大约 8 种不同类型的图表,每一种都需要提供略有不同的功能。
这里的问题是,有时我有一些大多数类将使用的“基本”功能,有时我有一些类将使用的“添加”功能,有时它是这些功能的混合体。最重要的是,图表中显示的数据再次脱节,视觉外观也脱节。
考虑以下可能适用于一个或多个图表的功能:
- 图表自动滚动的能力(使用实时数据)
- 图表可以在水平方向放大
- 图表在垂直方向上放大的能力
- 用户能够编辑图表中的点
- 用户选择数据区域的能力
- 用户可以更改图表的比例
- 图表“缩放以适应”的能力
- 拥有一个、两个、三个或四个垂直轴的能力
- 能够显示图表叠加
- ETC
综上所述,一些功能适用于所有图表,一些适用于图表的子集,还有一些适用于单个图表。目前我看不到要实现的功能层次结构。
我当前的实现使用一个基类(提供我可以清楚地看到的全局功能),然后我在这个基类上有两个“分支”,但我现在陷入了如何在单个类上实现不相交的功能上。我不能使用抽象类,因为有时我需要从多个类继承,但我不想提供接口,因为代码完全相同。
那么,我在这里做什么?我是否可以使用扩展方法来启用特定功能?