我有一個WinForm
,我用它來構建和測試電子郵件通訊。該表格包含許多方法和事件。設計模式,以適應兩種不同的方式處理Winform的功能
我現在在我的程序中添加了一項新功能,可以進行分割測試(A/X測試),因此可以爲一個廣告系列創建最多4種不同的時事通訊。
因此,我想擴展我的表格,以適應正常的通訊和A/X通訊。我要爲我的表單添加兩種不同的模式。例如:
private enum CampaignMode { Normal, AxTest };
除了一些控件的可見性會改變外,它們在外觀上會非常相似。
除此之外,幾乎所有的方法和事件都會有兩種不同的處理方式。
我應該使用哪種設計模式,以便我不必創建新的單獨表單?
爲了簡單起見,假設我的形式有以下幾種方法:
- 構造:可能收到
EditMode
作爲參數 - 負載
- 創建:按鈕的Click事件
- SetControlViews:Based在
EditMode
的控制 - 治法能見度設置:具體到
Normal
模式 - 方法b:具體到
AxTest
模式
你有沒有考慮過像MVP這樣的東西?表單可以抽象爲視圖界面,然後有兩個實現(演示者?)。 –
@DavidOsborne問題是,這種形式只是大程序的一小部分。在開始時應用'MVP'可能會很好。但我想,除非我對程序進行徹底改革,否則部分應用框架對我沒有任何好處。 – Disasterkid
不一定。您仍然可以採用IView概念並擁有兩個「可插拔」實現。它不需要嚴格的MVP爲您創建一個整潔的SOLID解決方案。 –