静态代理设计模式

原创 2016年06月01日 19:27:00

静态代理设计模式

静态代理角色分析:

1.真实角色:被代理的角色

2..抽象角色:一般使用接口或者抽象类来实现

3.代理角色:代理真实角色,代理真实角色后一般会做一些附属的操作


下面用一个出租房子的小事例快速的让大家理解什么是静态代理模式

Rent接口,是一个抽象的角色

package cn.lfd.staticProxy;
/*
 * 定义一个出租房子的接口
 */
public interface Rent {
	public void rent();
}
Host类 ,代表房东,想要出租房子

package cn.lfd.staticProxy;
/*
 * 房东对象,实现了出租房子的接口
 */
public class Host implements Rent{
	@Override
	public void rent() {
		System.out.println("出租房子");
	}
}
Proxy类,代表代理角色,替房东出租房子

package cn.lfd.staticProxy;
/*
 * 代理对象,也实现了出租房子的接口
 */
public class Proxy implements Rent{
	private Host host;
	
	//通过构造方法把房东对象传进来
	public Proxy(Host host) {
		this.host = host;
	}
	
	@Override
	public void rent() {
		seeHouse();
		host.rent();//代理并不是真正的出租房子,是调用房东对象的rent方法进行出租房子
		fare();
	}
	
	//看房子
	private void seeHouse() {
		System.out.println("带房客看房子");
	}
	
	//收取房租
	private void fare() {
		System.out.println("收取房租");
	}
}
Client类,是一个房客类

package cn.lfd.staticProxy;

public class Client{

	/**
	 * 房客类,模拟租房过程
	 */
	public static void main(String[] args) {
		Host host = new Host();//创建出一个房东对象
		Proxy proxy = new Proxy(host);//创建出一个代理对象,并通过构造方法把房东对象传进去
		proxy.rent();//调用代理对象的出租房子的方法
	}
}
运行结果:



静态代理的UML类图:

静态代理的优缺点:

优点:

1.使得真实角色处理的业务更加纯粹,不再去关注一些公共的事情

2.公共的业务由代理来完成,实现了业务的分层

3.公共业务发生扩展时变得更加集中和方便

缺点:

因为有了代理类,使得类变得非常多,工作量变得更大了

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

设计模式:JDK静态代理之Thread/Runnable

静态代理有如下要素: 1.目标角色(真实角色)。 2.代理角色。 3.目标角色和代理角色实现同一接口。 4.代理角色持有目标角色的引用。 下面的例子是一个简单的静态代理模式。 统一接口:p...

Java设计模式之----静态代理(一)

在学习spring时,里面有提到代理模式,看了一些前辈的博文,为了加强记忆,今天总结一下, 静态代理概念: 1、概念 a)        为某个对象提供一个代理类,来隔开用户对这个对象的直接操作...

设计模式——静态代理

代理模式 这里不过多解释:具体解释请看:设计模式——动态代理  代码 接口: /** * * Filename: IDBQuery.java * Description:...

java设计模式之静态代理

一、代理模式是干啥的? 代理模式是为其他对象提供一种代理以控制这个对象的访问。 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 二、代理模...

Java复习之静态代理设计模式

这篇博客主要是复习java中的静态代理模式。 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。 代理模式说白了就是“真实对象“的代表在访问对象时引入一定程度的间接性因为这种间...

java设计模式---静态代理(简单笔记)

Java动态代理模式 代理:一个角色代表别一个角色来完成某些特定的功能。    比如:生产商,中间商,客户这三者这间的关系              客户买产品并不直接与生产商打交道,也不...

java 设计模式之静态代理模式

java 设计模式之静态代理模式

JAVA设计模式之静态代理模式

interface: impl其中之一: 代理类: 调用:

GOF23设计模式之静态代理模式实现之经典

 /**  * 抽象就角色,定义代理角色和真实角色的公共对外方法  * 时间:2015年4月4日18:45:00  * 在这个例子中,抽象角色起着规范代理角色和真实角色的作用。  *...

设计模式-静态代理模式

1 代理模式在作用是:为其它对象提供一种代理难以控制对这个对象在访问. 2 在某些情况下,一个客户不想或者不能直接引用另外一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 3 代理模...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:静态代理设计模式
举报原因:
原因补充:

(最多只允许输入30个字)