java 代理设计模式

首先代理(deleration)是什么,在日常生活中我们有很多这种的例子,比如你上个QQ,各种空间被什么代理刷屏,对的,代理不是生产产品的商家,也不是进购产品的卖家,他们只是帮别人卖东西,这就相当于一个第三方关系的存在,而在java里,也有这么一种东西。
在我们使用继承的时候,可以感觉很方便,并且可以感受到java复用的精髓,而在享受这种便利的同时,我们还是将基类的所有方法全部暴露了出来,那么有没有一种方法是可以不将基类的方法暴露出来,同时也实现继承的作用呢,答案是有的,那就是代理。关于什么是代理,下面我们来看一个例子大家就明白了。

//创建一个People类
class People{
    private String name;
    private int age;
    //为people类添加一个说话的方法
    public void talk(){
        System.out.println("talking");
    }
    //添加一个打扫的方法
    public void clear(){
        System.out.println("clear");
    }
    //这里为了方便我就不再去写get set方法了
}
//接下来我们创建一个学生代理类
class StudentDeleration{
    private String name;
    private int age;
    //new一个People出来
    //注意这里声明了private是声明的引用,在其他任何类中都不能调用这个引用了,从而保证了良好的封装性
    private People people = new People();
    //talk方法
    public void talk(){
        //调用talk方法
        people.talk();
    }
    public void clear(){
        //调用clear方法
        people.clear();
    }
}

这样我们就做好了一个代理,那么别人使用这个学生代理类的时候,并不能知道底层的People类具体实现,保证了良好的封装性,当然,代理就是这个作用,你在朋友圈也只看到他在代理卖东西,却不知道她的被代理人是谁,其实你也不用知道,这也是封装了:)

转载于:https://www.cnblogs.com/haodawang/p/5967262.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值