我目前正在編寫圖表應用程序。我正在使用Zedgraph來顯示二維圖。在我的應用程序中,我需要顯示大約8種不同類型的圖表,每個圖表需要提供稍微不同的功能。爲類提供脫節功能
問題在這裏,有時我有一些「基本」功能,大多數類將使用,有時我有「添加」功能,一些類將使用和其他時間混合這些混合。最重要的是,圖表中顯示的數據再次分離,並且視覺外觀也不相交。
考慮以下的功能,可應用於一個或多個圖表:
- 能力圖表自動滾動(現場數據)
- 能力圖表在水平方向上進行放大
- 圖表能夠在垂直方向上放大
- 用戶可以編輯圖表中的點的能力
- 用戶選擇數據區域的能力
- 能力爲用戶圖表
- 能力改變圖表的刻度爲「放大,以適應」
- 能力ahve一個,兩個,三個或四個垂直軸
- 能力來顯示的圖覆蓋
- 等
帶來這一切在一起,一些功能適用於所有圖表,一些適用於圖表的一個子集,以及一些適用於各個圖表。目前我看不到要實現的功能層次結構。我現在的實現使用一個基類(以提供我可以清楚地看到的全局功能),然後我有兩個'叉'關閉這個基類,但我現在堅持在如何實現不相交功能在個人課上。我不能使用抽象類,因爲有時我需要從多個類繼承,但我不想提供一個接口,因爲代碼完全一樣。
那麼,我在這裏做什麼?我是否可以使用擴展方法來啓用特定的功能?
+1謝謝,不是一個壞建議。是的,擴展方法可能不是正確的用法,因爲有些東西是互斥的,我也可以在屬性設置器中處理。 – Simon
@Simon Yeah,總的來說,你應該從一個單獨的類開始,然後讓其他類使用它,它只會暴露它有能力的有限子集。有時候這並不可取,最好從共享子集開始並添加到其中,但由於事實上有很多選項的排列,而且許多不同的實例會添加不同的功能重疊,所以太難了。 – Servy