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

posted @ 2016-10-16 17:58  浩大王  阅读(1156)  评论(0编辑  收藏  举报