作者ghost3401 (阿hoho)
看板java
標題[問題] 請益Spring WEB MVC開發的問題
時間Fri Sep 6 00:53:02 2013
之前剛接觸完STRUTS2..還沒摸熟
馬上就碰到SPRING..
-------------------------------------
教學網站上,基本概念用不同DEVICE存取的例子:
public interface IDeviceWriter {
public void saveToDevice();
}
public class FloppyWriter implement IDeviceWriter {
public void saveToDevice() {
....
// 實際儲存至Floppy的程式碼
}
}
public class UsbDiskWriter implement IDeviceWriter {
public void saveToDevice() {
....
// 實際儲存至UsbDisk的程式碼
}
}
(謝謝梁葛格文章...)
在最近接手的專案,使用STRUTS2 的 Action 作為 Controller
用 annotaion 及 XML 設定方式注入需要的 Service 及 DAO;
我想請教的是:
1. 每個Service 和 DAO 都要先有個空介面,再來實作,
最後透過注入的方式於Controller使用;這樣做法是以後維護及延展性佳(?)
但DAO通常不是寫了就寫了,需要的話就一直在裡面加方法取資料..!?
一個DAO用一個介面,CODE中也沒有看到重複用同一個DAO介面的;
所以在DAO部分,每個DAO使用一介面實作用意是?
2. 呈上..Service部分也是一樣,目前看到的是
每一個Service實作一個介面,不重複
沒有範例中同是儲存體,但寫入方法不同的情況;
所以DI IOC特性在我這個專案中,WEB MVC帶來益處是甚麼?
麻煩大家觀念指正,感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.69.32
※ 編輯: ghost3401 來自: 114.45.69.32 (09/06 00:56)
推 jinmin88:你也可以用一個泛型Dao (具有CRUD+下HQL功能)走天下呀 09/06 01:34
→ flowwinds:個人認知, 如果DAO method內容有改變的話, 因controller 09/07 08:42
→ flowwinds:用的是DAO的介面, 所以就controller不用改什麼, 前提是 09/07 08:44
→ flowwinds:DAO的介面設計的夠好吧,後續沒有要改interface的狀況 09/07 08:47
→ flowwinds:DI/IOC是把物件的相依關係從code中移到XML中, 若要抽換 09/07 08:49
→ flowwinds:所相依實作的class,改XML就好;個人想法有錯請指正,tks 09/07 08:51
→ flowwinds:更正一下, 不見得都XML, 而是物件跟物件間都相依於介面 09/07 09:01
→ flowwinds:或抽象 09/07 09:02
→ ghost3401:謝謝分享!但還是很抽象的概念..只能從實作了解了 09/07 10:17
→ ghost3401:但想請問"如果DAO method內容有改變的話....." 09/07 10:26
→ ghost3401:C部分不用改? 但如果DAO不用介面方式 只要回傳和傳入 09/07 10:28
→ ghost3401:沒改變,C也不用改呢? 09/07 10:30
→ flowwinds:對啊, 這樣C也不用改 09/07 13:02
→ flowwinds:但我了解因為C用到的實際DAO有變動,C的.class需重編譯 09/07 13:09
→ flowwinds:底下cyclone350兄說的比較清楚, 依賴介面是為了DAO可能 09/07 13:41
→ flowwinds:的變動, 這是其中一個原因 09/07 13:42