我開發使用XSLT轉換XML文檔的應用程序。設計模式和配置設置
應用程序具有類似
* input
* output (directory)
* stylesheet
* and so on...
用戶設置值的設置對話框也可以選擇變換到PDF,XHTML等,並設置上述用於每種格式略有不同。現在,我想知道是否有人從設計角度對如何處理這些設置有什麼好的想法。我爲應用程序整體使用MVP(模型 - 視圖 - 演示者)模式,並且爲這些設置創建了模型類。因爲他們將設置存儲在不同的地方和不同的方式(在構建文件進行轉換)我已經爲每種格式類型(PdfModel等)分類了模型類。但除了有不同的存儲方式(這激發了子類化)之外,它們在某種程度上也有不同的屬性,正如我所提到的。例如,xhtml格式需要css屬性,而pdf格式需要fo格式化程序屬性,依此類推。
我試圖來解決這一問題,我得到它在幾種不同的方式工作得很好,所以這是沒有問題的。我只是想知道,如果任何具有良好設計模式經驗的人都可以闡明一下,如果這真的是一個很好的方式來做到這一點。它感覺對我來說很多,它對於一個相對簡單的事情來說太複雜了。然而,很難得到一個真正優雅的解決方案。舉例來說,如果我這樣做,如上文所述,我可以用一個接口,代碼和這樣我可以有幾個不同的視圖(帶主持人)顯示的設置,不必知道什麼型號將呈現(例如,我有一個屬性網格顯示除了用戶設置設置的視圖之外的視圖中的當前設置)。但是,這個問題是,我必須有一個接口,其中包含幾個不用於每個格式模型的屬性。所以對於pdf模型,我將不得不將Css屬性設置爲不適用或類似的東西。如果我要添加更多特定的屬性,這可能會變得更糟。
我也試過另一種變體,我只有在接口的通用屬性,然後我的代碼的接口,但在向下轉換接收類對象,以獲取子類的屬性。我不確定這是否好,但它的工作原理。也許這很好,但我真的很喜歡一些輸入來找出我是否過於複雜的事情,或者我可以做得更優雅...
我希望可以從我的描述中瞭解問題。任何建議將不勝感激!
問候,
安德斯
,如果你發佈你當前什麼樣的屬性界面將是,如果你正在尋找一些最佳實踐幫助的想法可能會有所幫助。那些試圖回答的人可能有一些代碼需要處理。 – justkt 2010-01-27 13:24:04