Java静态代理模式

作者: dpengwang | 来源:发表于2018-05-17 20:54 被阅读21次

    静态代理模式

    代理也就是一个人代替另一个人去做模式,在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反射有关,后续更新

    相关文章

      网友评论

        本文标题:Java静态代理模式

        本文链接:https://www.haomeiwen.com/subject/oxvidftx.html