码迷,mamicode.com
首页 > 编程语言 > 详细

Java代理设计模式

时间:2015-09-05 00:04:37      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

由于现在才开始学习java,所以现在只学习了静态的代理模式,后期会继续更新动态设计模式至此文以学习交流.

以下是本人对静态代理模式的一点理解.只供参考,希望对和我一样学习的人有帮助,如有错误之处,欢迎大家指正.以免本人误导他人.

 

interface HouseBuilder {//首先定义业务接口,接口是用来代理和具体实现的.还有就是用户的使用.
    public void buildHouse();//提供一个抽象的业务方法.
}
//具体类(真正具备这样功能的类),用来实现业务接口
class WanKeHouseBuilder implements HouseBuilder {
    @Override
    public void buildHouse() {
        System.out.println("我房屋建造商,我可以帮你盖房子");
    }
}
//代理类也实现业务接口,只不过是间接的调用被代理类对象去完成这件事.
public class StaticProxy implements HouseBuilder {//作为代理,也需要提供这样的功能,实际上只是通过他来调用真正具备这样功能的人去完成这件事.
    
    //被代理类对象
    private HouseBuilder target;
    
    public StaticProxy() {
        target = new WanKeHouseBuilder();//创建具体类的对象(真正具备这个业务功能的人)
    }
    @Override
    public void buildHouse() {
        System.out.println("代理开始...");
        target.buildHouse();//间接的去调用具体类的方法
        System.out.println("代理结束...");

    }
    
}

class ProxyTest {
    public static void main(String[] args) {
        HouseBuilder hb = new StaticProxy();
        //对用户来说,用户可以见到的只有代理,所以这里我们创建代理对象.
        //并把它看成一个可以实现这个业务的对象,把对象的地址赋值给业务接口的引用,实现多态性.
        //代理对象屏蔽被代理对象,我们直接访问代理,通过代理去访问之间的一//些工作.
        hb.buildHouse();//因为代理类实现(重写了)了接口的抽象方法.所以可以直接调用(虚方法调用).
    }
}

 

Java代理设计模式

标签:

原文地址:http://www.cnblogs.com/aL0n4k/p/4782556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!