2011-06-09 38 views
6

我剛剛恢復了一箇舊項目的工作,並一直在考慮重寫它的某些部分。試圖遵循MVC - 在一個好的設計上尋求建議

我的問題涉及如何構建我的程序。我一直在試圖遵循MVC範式。我將首先解釋事情的立場:該程序處理4種類型的圖像:偏壓,黑暗,平場和燈光。我有一個名爲Image的課程,可以表示所有這些。從光中減去偏壓和暗光,然後光由平場分開。最初,我將爲此使用2個類,一個叫CalibrationImage,另一個叫Light。但差異只是一種方法,這將是我上面提到的分割功能。否則,他們是一樣的。所以我決定不要爲此而設兩個班。

該計劃中的第二個主要課程涉及處理多個Image對象 - 此類被稱爲ImageStacker。截至目前,它將Image對象保存在可變數組中。它可以對此陣列執行各種操作,如堆疊所有圖像,校準它們等。

此類還可用作主窗口中NSTableView對象的數據源。我沒有想過,而不是有一個單一的可變數組,我應該有4個數組,每個數組都持有一個圖像類型(例如,一個數組的燈光,另一個黑暗等)。一旦程序開始其實際工作,它將黑暗,平場和偏置幀。然後它將校準Lights數組中保存的每個對象,然後將它們堆疊起來。我覺得這樣可以爲程序提供合理的進程。它也易於可視化。

這是一個很好的程序設計嗎?它遵循MVC嗎?正如我所看到的,我的觀點是NSTableView,控制器是NSApplication,型號是ImageStacker。但是,然後,Image感覺它不是MVC的一部分,但我不知道如何編寫沒有它的程序。

回答

1

我的2分錢:MVC是一種演示設計模式。除了MVC部分,我通常會使用單獨的業務和數據層來編寫我的MVC應用程序。可以確定Image不是MVC模式的一部分,它可能更適合您將定義爲業務層的一組類。有很多好書,博客和文章討論編程設計模式,所以我不會重申他們已經做了什麼。簡單地問這個問題是一個好的開始。我建議你通過查看已經可用的內容來追蹤。

+0

請您指點一本書,您認爲這本書可以給予適當的治療嗎? – saad 2011-06-10 21:17:35

相關問題