关闭

代理模式

标签: OOP面向对象编程代理模式
567人阅读 评论(0) 收藏 举报
分类:

代理模式

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

例子


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动态代理的应用


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:286075次
    • 积分:3086
    • 等级:
    • 排名:第11924名
    • 原创:64篇
    • 转载:5篇
    • 译文:1篇
    • 评论:52条
    最新评论