代理模式

代理模式

代理从字面意思理解就是委托办理事情,比如买房子找中介,但具体房子还是属于原房主的不是中介的。

例子


public interface ISale { 
   public int sale(House house); //卖房子
}


房屋中介

public class HouseProxy implements ISale {
    public int sale(House house) { 
        return 0;
    }
}

实际卖家
public class HouseOwner implement ISale {
    public int sale(House house) {
        //处理逻辑,比如卖房子 需要到房屋管理所去办手续等,需要操作DB
        return 0;
    }
}


我们合起来

public class HouseProxy implements ISale {
    public int sale(House house) { 
        //我们还可以做日志监控,典型的Spring中用动态代理来处理非业务问题

        HouseOwner owner = new HouseOwner();
        return owner.sale(house); 
    }
}


ISale saleMan = new HouseProxy();
House h = new House();
h.price = 344.0;
h.owner = "Mr.Wang";
h.id    = "A3343";
saleMan.sale(h);

代理优点

1.API与实现分离,一种解耦
2.代理类中还可以做其它事情,比如日志处理,典型的是Spring框架中AOP动态代理的应用


你可能感兴趣的:(oop,代理模式,面向对象编程)