代理模式(Proxy Pattern)

代理模式(Proxy Pattern)定义:对其他对象提供一种代理以控制对这个对象的访问。

代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。代理模式经常在以下情景中使用:

1.代理一些开销很大的对象,这样便能迅速返回,进行其它操作,只有在真正需要时才实例化;

2.安全控制、同步控制,缓存处理结果,缓存初始化开销很大的对象,统计对象的使用以及异常处理等方面。

3.分布式对象访问控制,使得客户对象使用本地对象一样使用分布式对象。

为了保证客户对象透明地使用代理对象,代理类和实际类具有一致的接口。


package com.alex.proxypattern;

public class ServiceProxy implements Service{

	@Override
	public String hello() {
		operation();
		return "Server say hello ... ";
	}
	
	public void operation(){
		System.out.println("connect to the server ... ");
		System.out.println("process data in the server ... ");
		System.out.println("get the result from the server ...");
	}

}

package com.alex.proxypattern;

public interface Service {
    String hello();
}

package com.alex.proxypattern;

public class ServiceImpl implements Service{

	@Override
	public String hello() {
		// TODO Auto-generated method stub
		return "Server say hello ... ";
	}

}

package com.alex.proxypattern;

public class Client {
    public static void main(String[] args) {
        Service service = new ServiceProxy();
        String result = service.hello();
        System.out.println(result);
    }
}


运行结果:

connect to the server ... 
process data in the server ... 
get the result from the server ...
Server say hello ... 


注:本文大部分内容点来自刘济华的《漫谈设计模式》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值