1. 在我看來,ActionForm是專用于表示層的,所以它依賴Struts這個web框架,也是很自然的。
當(dāng)然我知道很多人覺得Action Form不好的原因之一就是它強(qiáng)迫開發(fā)者繼承ActionForm基類。
2. Action Form的最佳實(shí)踐就是只用String類型的屬性。如果想用自動類型轉(zhuǎn)換,十有八九是要吃苦頭的,
這確實(shí)是一個缺陷,但是以我之見,這也不是什么硬傷。無非是需要寫action form轉(zhuǎn)換到DDO的代碼。
3. 關(guān)于ActionForm是不是POJO的問題,我的認(rèn)識是ActionForm也是POJO,因?yàn)槟隳軇?chuàng)建它,控制它。在我看來只有EJB不是POJO。因?yàn)樗峭ㄟ^代碼生成技術(shù)生成最終的,我們沒有辦法控制。
4. 我認(rèn)為ActionForm并非無可救藥的最關(guān)鍵因素是。在J2EE的世界,不論是JavaBean,還是ActionForm,還是DDO,DTO,VallueObject。從面向?qū)ο蟮慕嵌瓤矗疾皇钦嬲膶ο蟆樯催@么說呢?首先它不符合Encapsulation特性。可以說一旦需求改變,需要增加屬性,減少屬性,接口就必須改變。所以即使它們具有public方法,private 屬性的形式。在本質(zhì)上實(shí)現(xiàn)和接口仍然是緊偶合的。在這樣的基礎(chǔ)上,我們賦予它們過多的重要性也許沒有什么意義。也就是說即使有更好的方案來取代ActionForm,也不過是錦上添花而已。
5. 和DDO比較而言,DDO因?yàn)榭梢钥缭蕉鄬樱源a可以更簡潔。而如果在表示層使用ActionForm,則需要將ActionForm轉(zhuǎn)換成Service層DDO,轉(zhuǎn)換的代碼比較煩瑣;但是用actionForm也有也各好處,表示層獨(dú)立性更強(qiáng)了,尤其是JSP完全獨(dú)立了,不再依賴service層的DDO。在service層和表示層分別由不同團(tuán)隊開發(fā)的情況下,這種設(shè)計是有實(shí)際價值的。
期待著大家的批判。