zoukankan      html  css  js  c++  java
  • 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类具体实现,保证了良好的封装性,当然,代理就是这个作用,你在朋友圈也只看到他在代理卖东西,却不知道她的被代理人是谁,其实你也不用知道,这也是封装了:)

  • 相关阅读:
    clion中配置glfw和glew
    oracle xe在centos下的安装(更)
    git服务搭建以及本地连接
    IDEA导入Maven多项目(Mac下)
    关于反射的学习理解
    MySQL安装及后续配置
    idea配置servlet记录,tmocat当服务器,学习
    mapper映射文件配置之select、resultMap、resultType
    mysql多表查询
    看看阿里员工分享的java知识
  • 原文地址:https://www.cnblogs.com/haodawang/p/5967262.html
Copyright © 2011-2022 走看看