侵入式開發與非侵入式開發的區別

 

假設大家都想要把用戶代碼塞到一個框架裏。兩者區別就出來了:

侵入式的做法就是要求用戶代碼“知道”框架的代碼,表現爲用戶代碼需要繼承框架提供的類。

非侵入式則不需要用戶代碼引入框架代碼的信息,從類的編寫者角度來看,察覺不到框架的存在。

 

舉個栗子: 
使用struts時,需要繼承一些struts的類,這時struts侵入到了我的代碼裏。 
使用spring時,編寫一些業務類的時候不需要繼承spring特定的類,通過配置完成依賴注入後就可以使用,此時,spring就沒有侵入到我業務類的代碼裏。 

世界上每一個物體的存在,必有其過人之處,但是人無完人,不可能存在永遠完美的東西存在,其也會受到時代潮流的影響:
侵入式讓用戶代碼產生對框架的依賴,這些代碼不能在框架外使用,不利於代碼的複用(缺點)。但侵入式可以使用戶跟框架更好的結合,更容易更充分的利用框架提供的功能(優點)。 

非侵入式的代碼則沒有過多的依賴,可以很方便的遷移到其他地方。但是與用戶代碼互動的方式可能就比較複雜。 

這兩種方式都有各自的利弊,主要看實際開發時怎麼選擇他了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章