设计模式之代理模式(二结构型)

1.什么是代理模式?

  为其他对象提供一种代理,并以控制对这个对象的访问。(Provide asurrogate or placeholderforanother object tocontrol access to it. )而对一个对象进行访问控制的一个原因是为了只有在我们确实需要这个对象时才对它进行创建和初始化。它是给某一个对象提供一个替代者(占位者),使之在client对象和subject对象之间编码更有效率。代理可以提供延迟实例化(lazy instantiation),控制访问, 等等,包括只在调用中传递。 一个处理纯本地资源的代理有时被称作虚拟代理。远程服务的代理常常称为远程代理。强制 控制访问的代理称为保护代理。

代理模式的缺点:
  由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。
  实现代理模式需要额外的工作,有些代理模式的实现非常复杂。

2.代理模式应用场景?

  中介租房,代理服务器等。

3.代理模式使用举例。

  西门庆与潘金莲私通,是通过王婆作为代理,来实现的,另外假如他和贾氏也可以有染,也可以由王婆作为代理。具体类图如下:

 

核心代码描述为:

/**
* @FileName ICoquettishWoman.java
* @Package com.ali.pattern.proxy
* @Description TODO[what the file to do]
* @Author ali blog:http://www.cnblogs.com/accipiter
* @Date 2016年1月18日下午11:34:25
* @Version V1.0.1
*/
package com.ali.pattern.proxy;

/**
 * @ClassName ICoquettishWoman
 * @Description TODO
 * @Date 下午11:34:25
 */
public interface ICoquettishWoman {
    public void makeEyes();
    public void makeLove();
}

代理类ProxyWangpo

/**
* @FileName ProxyWangpo.java
* @Package com.ali.pattern.proxy.impl
* @Description TODO[what the file to do]
* @Author ali blog:http://www.cnblogs.com/accipiter
* @Date 2016年1月19日上午12:15:32
* @Version V1.0.1
*/
package com.ali.pattern.proxy.impl;

import com.ali.pattern.proxy.ICoquettishWoman;

/**
 * @ClassName ProxyWangpo
 * @Description TODO
 * @Date 上午12:15:32
 */
public class ProxyWangpo implements ICoquettishWoman{
    
    private ICoquettishWoman iCoquettishWoman=null;

    public ProxyWangpo(ICoquettishWoman iCoquettishWoman){
        this.iCoquettishWoman=iCoquettishWoman;
    }
    @Override
    public void makeEyes() {
        this.iCoquettishWoman.makeEyes();
    }

    @Override
    public void makeLove() {
        this.iCoquettishWoman.makeEyes();
    }
    
}

===================华丽分割线=================================

其他代码,想要可以联系。。

转载于:https://www.cnblogs.com/accipiter/p/5140934.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值