2016-01-19 38 views
1

我正在創建一個基本上是繪畫娛樂的Windows窗體應用程序。我有各種按鈕的工具條,我可以將位圖副本拖放到圖上並將其放置在繪圖面板上。不過,我想添加能夠圍繞面板移動位圖的功能,並使用拐角和中間的9個節點重新調整它的大小。單身或靜態類還是兩者都不?

目前我的形式所具有的

List<Diagram> theDiagrams; 

其中包含自定義圖對象的列表。每個圖都表示繪圖面板上的位圖,它具有座標,大小,z-索引,位圖和一些其他信息。但是現在我只想讓焦點圖能夠編輯,或者讓外部的9個節點能夠移動/重新調整大小。我正在考慮創建一個類,該類是我目前使用的Diagram類的派生類,但是我只想創建其中的一個類。我應該創建一個靜態類還是可能使用單例設計模式來確保一次只能創建其中一個對象。理想情況下,我希望這個類從一開始就是空的,只有在必要時纔會設置爲圖的副本。

我更少想弄清楚如何爲這個特定的場景設計類,所以我不認爲需要太多的代碼來獲得我所說的要點。但是,如果您覺得您需要一些我正在談論的示例,我非常樂意分享代碼,以確保我能夠提供最佳的解決方案。

如果你不明白我的問題,我應該使用單一設計模式,靜態類,還是我沒有試圖完成?

回答

2

我會避免在這種情況下的靜態和單身模式。如果你有超過1個窗體(MDI應用程序),那麼該怎麼辦?

所選的位圖/圖層就像圖像/窗體的屬性,沒有模塊或類可以直接改變它。您的圖片類是的List<Diagram>


控制我想你應該有一個包含/在同一控制定義的當前選擇的圖形式包含List<Diagram> theDiagrams領域private Diagram selectedDiagram;場。

繪製完整列表時,應該跳過所選列表並將其繪製爲最後一個圖。 (所以這將是最頂層)

只是一個想法....

​​

,當你取消一個圖,只需清除selectDiagram = null;場和重繪位圖。