Java代理系列-静态代理
生活随笔
收集整理的這篇文章主要介紹了
Java代理系列-静态代理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
代理模式可以做很多事,像hibernate,spring都使用了代理模式。
spring的aop就是用代理做的。
本系列分為4章,靜態代理,動態代理熱身,動態代理,cglib代理
今天先寫一寫靜態代理
本例目的是在要調用的方法前后輸出start和end,會使用四個類
接口HelloInterface
接口實現類HelloInterfaceImpl
靜態代理類HelloStaticProxy
測試類HelloTest
首先寫一個接口HelloInterface,定義一個say方法
package?net.hldh.river.staticproxy;/***?Created?by?liuhj?on?2015/12/1.*/ public?interface?HelloInterface?{public?void?say(); }實現接口HelloInterfaceImpl,打印Hello
package?net.hldh.river.staticproxy;/***?Created?by?liuhj?on?2015/12/1.*/ public?class?HelloInterfaceImpl?implements?HelloInterface?{@Overridepublic?void?say()?{System.out.println("Hello");} }代理類HelloStaticProxy實現,在代理的方法內加前后環繞,是不是很像AOP
package?net.hldh.river.staticproxy;/***?Created?by?liuhj?on?2015/12/1.*/ public?class?HelloStaticProxy{//spring?依賴注入?類似吧private?HelloInterface?helloInterface;public?HelloStaticProxy(HelloInterface?helloInterface){this.helloInterface?=?helloInterface;}public?void?say_proxy(){System.out.println("start");helloInterface.say();System.out.println("end");} }編寫測試類HelloTest
package?net.hldh.river.staticproxy;/***?Created?by?liuhj?on?2015/12/1.*/ public?class?HelloTest?{public?static?void?main(String?args[]){HelloStaticProxy?proxy?=?new?HelloStaticProxy(new?HelloInterfaceImpl());proxy.say_proxy();} }輸出結果
start Hello end靜態代理呢,使用的不是太多,主要是當你要修改接口或者其他方法時要修改代理類實現類等好多方法,好麻煩
下一章主要寫寫動態代理前需要知道的知識
才疏學淺,如有錯誤敬請指出,謝謝。
轉載于:https://my.oschina.net/u/2519530/blog/538081
總結
以上是生活随笔為你收集整理的Java代理系列-静态代理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php5.3 延迟静态绑定 static
- 下一篇: [Array]Majority Elem