IT技术篇程序猿阵线联盟-汇总各类技术干货SpringFramework

Java静态代理模式

2018-05-17  本文已影响21人  dpengwang

静态代理模式

代理也就是一个人代替另一个人去做模式,在java里代理就是一个对象代另一个对象去执行它所拥有的方法。实质还是执行被代理对象的方法,如何进行代理?==》就是把被代理的对象作为参数传入到代理的内部,代理者的内部会自己调用被代理者的方法。

静态代理中代理者和被代理者都要实现相同的接口。

eg:

interface  Marry{
    public void getmarry();
}
class People implements Marry{
    String name;
    public People(String name) {
        this.name =name;
    }
    @Override
    public void getmarry() {
    System.out.println(this.name+" will  maryy today"); 
    }   
}
class WedingConpany implements Marry{
    private People apeople;
    
    public WedingConpany(People aPeople) {
        this.apeople =aPeople;      
    }

    @Override
    public void getmarry() {
        System.out.println("wedding company do some thing before wedding ");
        apeople.getmarry();
        System.out.println("wedding company do some thing after wedding");  
    }   
}

public class StaticClientTets {
    public static void main(String args[]){
        Marry clientmarry =  new WedingConpany(new People("jzm"));
        clientmarry.getmarry();
    }
}

如代码所示,结婚公司代people执行了getmarry的方法,并在people的getmarry前后添加了自己的输出。代理的好处就是可以增强代码的重用性,保证核心业务可以被重用。

采用代理模式可以有效的将具体的实现与调用方进行解耦,通过面向接口进行编码完全将具体的实现隐藏在内部。

动态代理

跟java反射有关,后续更新

上一篇下一篇

猜你喜欢

热点阅读