?????? 動(dòng)態(tài)代理模式,在當(dāng)前流行框架(如:Spring尤勋、Mybatis变隔、Dubbo)中應(yīng)用非常廣泛规伐,掌握動(dòng)態(tài)代理模式是理解框架源碼的基礎(chǔ)。如果未來(lái)你參與框架的設(shè)計(jì)與開發(fā)匣缘,動(dòng)態(tài)代理模式必將成為你的利器猖闪。
?????? 動(dòng)態(tài)代理的實(shí)踐:一鲜棠、創(chuàng)建實(shí)現(xiàn)InvocationHandler接口的類,并重寫invoke方法萧朝;二岔留、使用Proxy.newProxyInstance創(chuàng)建代理對(duì)象;三检柬、JDK的動(dòng)態(tài)代理針對(duì)的是接口(使用Mybatis的時(shí)候我們創(chuàng)建的Mapper都是接口献联,接口沒有實(shí)現(xiàn)類是如何正常調(diào)用的呢,答案就是動(dòng)態(tài)代理)何址。
?????? 日志打永锬妗:
?????? 接下來(lái)我們來(lái)看下Mybats的動(dòng)態(tài)代理實(shí)踐:
?????? 劃重點(diǎn):動(dòng)態(tài)代理是一種思想,提供了對(duì)同一類問(wèn)題集中統(tǒng)一的解決方案用爪。就如Mybatis原押,所有的Mapper都由統(tǒng)一的動(dòng)態(tài)代理類處理。思想是根基偎血,更重要的是后續(xù)統(tǒng)一處理操作诸衔,這個(gè)就需要根據(jù)具體框架使用場(chǎng)景具體實(shí)現(xiàn)了。