Dot-Net
控制台應用程序的類似 MVC 的設計?
我發現編寫 Web 應用程序和 WinForm 應用程序通常比編寫控制台應用程序要乾淨得多。
清潔工是什麼意思?好吧,UI(即 readline/writeline)與邏輯程式碼如此交織的事實變得可怕,而且它不是事件驅動的事實意味著更難獲得良好的抽象。
我正在考慮這個問題,MVC 確實嘗試解決 Web 應用程序的類似問題,所以我的問題是控制台應用程序有類似的問題嗎?或任何指南以更好地設計控制台應用程序?
我想您會發現 Model View Controller 的流行替代品是 Model-View-Presenter。兩者之間的模型基本相同。控制器和視圖的角色非常相似,但根據您的實現,它們可能會承擔更多的責任。在 MVP 內部,有兩種實現方式:Supervising Controller 和 Passive View。MVP 通常被認為是 WinForms 客戶端的標準架構,也可以應用於 WebForms。以下是一些相關連結以獲取更多資訊:
- MVP 上的 MSDN - http://msdn.microsoft.com/en-us/library/cc304760.aspx
- Martin Fowler 談監督控制器 - http://martinfowler.com/eaaDev/SupervisingPresenter.html
- Martin Fowler 談被動視圖 - http://martinfowler.com/eaaDev/PassiveScreen.html
- Jeremy Miller 談 ASP.Net 的 MVP - http://codebetter.com/blogs/jeremy.miller/archive/2006/02/01/137457.aspx。您還可以查看他的 Build Your Own CAB 系列。它教授 MVP,因為它適用於 WinForms。
- 監督控制器上的多態播客截屏 - http://polymorphicpodcast.com/shows/mv-patterns/ (強烈推薦)
最後,如果您想閱讀一本書,C# 中的敏捷原則、模式和實踐包含了建構基於控制台的工資單應用程序的出色演練。完成後,他們建構到 WinForms UI 以展示他們的應用程序架構如何允許他們輕鬆添加新視圖。