java应用程序多态_java – 多态和n层应用程序
這是一個很好的問題.這里有不止一個似是而非的方法;你必須平衡權衡,做出適合你情況的選擇.
(1)有些人會認為Document接口應該為實例提供一個自己呈現的方法.這從OO的角度來看是有吸引力的,但是根據您的觀點技術,加載您的具體文檔類(可能是簡單的域模型類),具有JSP,Swing組件或其他內容的知識可能是不切實際的或徹底的丑陋.
(2)有些人會建議在Document上放置一個String getViewName()方法,例如返回可以正確呈現該文檔類型的JSP文件的路徑.這避免了在一個級別(圖書館依賴/“繁重的”代碼)#1的丑惡,但在概念上也提出了同樣的問題:您的域模型知道它正在由JSP呈現,并且它知道您的webapp的結構.
(3)盡管有這些觀點,如果您的Controller類不知道Universe中存在什么類型的文檔,并且每個Document的實例都屬于哪個類型,那么會更好.考慮在某種基于文本的文件中設置某種視圖映射:.properties或.xml.你使用春天嗎? Spring DI可以幫助您快速指定具體文檔類的Map以及渲染它們的JSP / view組件,然后將其傳遞給Controller類的setter /構造函數.這種方法允許:(1)您的控制器代碼與文檔類型保持不變,(2)您的域模型保持簡單和不可知的視圖技術.它是以增量配置為代價的:.properties或.xml.
我會去#3或 – 如果我的預算(及時)在這個問題上工作很小 – 我會(4)只是硬編碼一些基本知識的文檔類型在我的控制者(正如你所說的現在,現在,為了在下次被迫更新我的控制器時,由于不太優化的OO特性,我們希望在將來切換到#3.事實上,#s 1-3每個都需要更長的時間,比#4更復雜,即使它們更“正確”.與#4同時也是YAGNI Principal的一個點頭:沒有確定你會遇到#4的負面影響,有意義的是支付前期避免的成本?
總結
以上是生活随笔為你收集整理的java应用程序多态_java – 多态和n层应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android搭建web,Android
- 下一篇: adb server is out of