考慮到一個假設的情況,即過去幾年一直存在一箇舊的,遺留的演示庫,並且通過快速更正和缺乏適當的架構監督,逐漸將更多的業務邏輯編入其中。或者,考慮一個業務類或命名空間,它不是通過彙編邊界與演示分離,因此能夠引用諸如System.Windows.Forms之類的東西,而不必強制添加引用(比簡單的使用子句更加清醒的操作) 。處理混合業務和表示代碼的最佳方法?
在這樣的情況下,它不是不可想象的,通過這個UI代碼中使用的業務代碼最終會在重複使用被調用。爲了實現這個目的,重構這兩層的好方法是什麼?
我對設計模式非常熟悉 - 至少在原則上反正。但是,我沒有一整套實踐經驗,所以我對自己的直覺有點不確定。我已經開始沿着使用策略模式的道路。這個想法是確定業務邏輯調用UI組件的位置,以向用戶提出問題並收集數據,然後將這些數據封裝到一組接口中。該接口上的每個方法都將包含來自原始工作流的面向UI的代碼,然後UI類將實現該接口。
想要重用有問題的業務邏輯也將實現這個接口,但是替代無論是新窗口或可能的pre-fab或參數回答最初由UI組件回答這些問題的新代碼。這樣,biz邏輯可以被視爲一個真正的庫,雖然有些尷尬的接口參數傳遞給它的一些方法。
這是一個體面的方法嗎?我應該如何更好地處理這個問題?我會順從你的集體互聯網智慧。
謝謝!
謝謝你讓我今天學習一個新詞。我仍然不確定我是否知道混合的含義,但是我將立即開始使用它! – 2010-08-13 20:02:27
是您的基本問題「我如何從UI中存在的一堆業務邏輯創建業務邏輯層?」 ? – 2010-08-13 20:04:59
我對融合的印象是把兩件事合併爲一,通常帶有錯誤/否定的基調。很高興你喜歡我的文辭!但是,是的,基本問題並不是真正的「如何製作三層」,而是從實際的角度來看,「我該如何解決這個問題」。 – bwerks 2010-08-13 20:49:16