2013-05-29 45 views
2

我想爲我正在編寫的軟件使用模型視圖演示者(MVP)模式。我正在使用C#和Windows窗體,儘管這對回答我的問題應該沒有關係。方法組織事件處理與軟件複雜性增加

我有多個「MVP結構」。例如,其中一個處理保留模式圖形,我可以在畫布上繪製幾何圖形。另一個是採取這些形狀,對他們做一些分析,並把結果放在其他地方。可能有許多事件會導致控制器在某處操縱數據,從而導致數據在另一個地方的級聯操作等等。

我的恐懼是,如果我沒有正確地組織我的軟件,我最終將會忽略什麼在改變。我可以想到兩種方法來組織我的軟件中發生的程序部件之間的交互:分層或交換板。

我的問題是:是否有任何衆所周知的方法或模式,我應該查找組織我的軟件?我需要從我的網頁搜索開始。

回答

1

我覺得你的直覺是對的。如果你創造了許多級聯的事件,你將會陷入困境。由於失控事件,我已經看過很多次過於複雜的應用程序。這使代碼非常難以調試和改進。

它首先想到的是介體模式。詳細闡述一下,我將擁有管理部分業務邏輯的中心類。我會在每個MVP輕量級模型中,基本上是一個客戶端,要求服務器(這個控制器類之一)的更復雜的業務邏輯。這個想法是讓MVP類的每個模型儘可能少的與類交互(核心業務邏輯),並避免與其他MVP交互(這將有更具體的業務邏輯)

在任何情況下,我會盡可能限制儘可能讓拋出和聽取事件的班級儘可能少地集中在一起。觀察者模式可以在這裏幫助。擁有包含繁重業務邏輯的服務層的客戶端 - 服務器體系結構可以幫助將來實現這種分離和可維護性。

來自fowler經典的「企業應用程序體系結構模式」的模式服務層也可能很好。