静态代理模式

来源:互联网 发布:sql查询语句实例 编辑:程序博客网 时间:2024/05/19 00:55

静态代理三部曲:

1、定义公共实现的接口。

2、创建真实角色的对象。

3、创建代理角色的对象,持有真实角色的引用。


public class StaticProxy { //静态代理模式
    
    public static void main(String[] args) {
        //1.创建真实角色对象
        You you = new You();
        //2.创建代理角色对象,持有真实用户对象的应用
        MarryCompany proxy = new MarryCompany(you);
        //3.执行marry()
        proxy.marry();
        
    }
    

}

interface Marry{   //公共接口
    
    public abstract void marry();
    
}

class You implements Marry{  //真实角色

    @Override
    public void marry() {
        System.out.println("你和嫦娥结婚。。。");
    }
    
}

class MarryCompany implements Marry{ //代理角色
    private You you;
    
    public MarryCompany() {
    }
    
    public MarryCompany(You you){
        this.you = you;
    }
    
    private void before(){ //
        System.out.println("布置猪窝。。。");
    }
    private void after(){
        System.out.println("闹玉兔。。。");
    }
    @Override
    public void marry() {
        
        before(); //忙前
        you.marry();  //真实角色结婚
        after(); //忙后
        
        
        
    }
    
}



0 0