SSM-Spring-08:Spring的靜態代理初窺案例
阿新 • • 發佈:2018-03-06
ssp unit text app OS create 創建 test BE
------------吾亦無他,唯手熟爾,謙卑若愚,好學若饑-------------
靜態代理
java的設計模式的代理模式,就是靜態代理
寫在前面的話,靜態代理的優點和缺點
優點:可以在不改變一個類的方法下,對這個類的方法進行增強
缺點:靜態代理需要創建物理文件,在想實現多個靜態代理的操作,就需要好多的物理文件,不太優良
實現案例:
Subject接口:抽象主題的接口,有一個方法
package cn.dawn.day08proxy; /** * Created by Dawn on 2018/3/6. */ public interfaceSubject { public void request(); }
RealSubject類:真實主題的類,實現上面的Subject接口,實現他的方法
package cn.dawn.day08proxy; /** * Created by Dawn on 2018/3/6. */ public class RealSubject implements Subject { public void request() { System.out.println("request本身——————————————————————————————-"); } }
ProxySubject類:代理主題的類,同樣實現Subject接口,裏面有個Subject的接口的實例對象,他的get/set方法,還有新的方法,對真實主題進行靜態的增強
package cn.dawn.day08proxy; /** * Created by Dawn on 2018/3/6. */ public class ProxySubject implements Subject { Subject subject; public void request() { System.out.println("before"); subject.request(); System.out.println("after"); } public Subject getSubject() { return subject; } public void setSubject(Subject subject) { this.subject = subject; } }
單測方法:
package cn.dawn.day08proxy; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Created by Dawn on 2018/3/3. */ public class test20180306 { @Test /*di註解註入*/ public void t01(){ Subject realSubject=new RealSubject(); ProxySubject proxySubject=new ProxySubject(); proxySubject.setSubject(realSubject); proxySubject.request(); //realSubject.request(); } }
SSM-Spring-08:Spring的靜態代理初窺案例