最主要是為了分層開發(fā),代碼解耦。使用接口,可以方便修改和維護(hù)。至于Dao和Service層,這是三層架構(gòu)里的,為了把數(shù)據(jù)庫DB的操作和業(yè)務(wù)操作分離開來,就是解耦,可以給前期開發(fā)和后期維護(hù)帶來便利,實(shí)現(xiàn)多人快速開發(fā)。
在普蘭等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),普蘭網(wǎng)站建設(shè)費(fèi)用合理。
盡最大程度的降低程序的耦合性可以是程序具備良好的擴(kuò)展性,易于修改。
較為具體的說明就是有的時候程序需要修改,我只需要改正一部分,單是如果程序的耦合性很強(qiáng)的話就需要從頭再寫一遍很不劃算,而正常的開發(fā)中都是改那部分,重寫那部分,把配置文件一改就成了,java中通過接口(interface),spring技術(shù)中的ioc等實(shí)現(xiàn)的解耦合
舉例說明也許更好理解:a=4;if(a5
||
a10){
//porgram1。。。。}else{
//program2。。。。}因?yàn)閍等于4,所以在執(zhí)行if()時,先判斷了a5的情況,因?yàn)闂l件已經(jīng)成立,后面的a10就沒有必要執(zhí)行而被“短路”了。
因?yàn)榍昂蠖朔蛛x有很多優(yōu)點(diǎn)。
1、為優(yōu)質(zhì)產(chǎn)品打造精益團(tuán)隊,通過將開發(fā)團(tuán)隊前后端分離化,讓前后端工程師只需要專注于前端或后端的開發(fā)工作,是的前后端工程師實(shí)現(xiàn)自治,培養(yǎng)其獨(dú)特的技術(shù)特性,然后構(gòu)建出一個全棧式的精益開發(fā)團(tuán)隊。2、提升開發(fā)效率,前后端分離以后,可以實(shí)現(xiàn)前后端代碼的解耦,只要前后端溝通約定好應(yīng)用所需接口以及接口參數(shù),便可以開始并行開發(fā),無需等待對方的開發(fā)工作結(jié)束。與此同時,即使需求發(fā)生變更,只要接口與數(shù)據(jù)格式不變,后端開發(fā)人員就不需要修改代碼,只要前端進(jìn)行變動即可。如此一來整個應(yīng)用的開發(fā)效率必然會有質(zhì)的提升。3、完美應(yīng)對復(fù)雜多變的前端需求,如果開發(fā)團(tuán)隊能完成前后端分離的轉(zhuǎn)型,打造優(yōu)秀的前后端團(tuán)隊,開發(fā)獨(dú)立化,讓開發(fā)人員做到專注專精,開發(fā)能力必然會有所提升,能夠完美應(yīng)對各種復(fù)雜多變的前端需求。4、增強(qiáng)代碼可維護(hù)性,前后端分離后,應(yīng)用的代碼不再是前后端混合,只有在運(yùn)行期才會有調(diào)用依賴關(guān)系。應(yīng)用代碼將會變得整潔清晰,不論是代碼閱讀還是代碼維護(hù)都會比以前輕松。
解耦,就是將程序積木化
就像我們玩的積木一樣,各個積木可以組合在一起而形成一個形狀,又可以拆分,又可以替換,因?yàn)榛旧?各個積木塊都是獨(dú)立的,只要他們之間的接口(形狀)匹配,就可以靈活地組合在一起。
當(dāng)然,這是理想狀態(tài)。解耦是在逐漸達(dá)到這個理想狀態(tài)。
深度理解還是建議多看書,你可以在這里下載java學(xué)習(xí)書籍pdf
這個沒必要還來代碼示例了
定義一個接口,在你的程序中用實(shí)現(xiàn)該接口的任意類來實(shí)例化類,你都可以直接調(diào)用接口中的方法,這不就解耦了么