【设计模式】代理设计模式

什么是代理设计模式

西门庆想找潘金莲啪啪啪(我淫荡的笑了),潘金莲是女的啊,总不能直接说come on baby吧,那她跟西门庆说,你去找王妈妈吧!王妈妈会安排一切的,此时王媒婆就是潘金莲的代理,西门庆以后想要啪啪啪,直接告诉王媒婆就行了。

程序表现

先定义一个接口

代理者和被代理者都要实现这个接口

public interface Women {
    //啪啪啪方法
    public void papapa();
}

定义潘金莲

public class PanJinLian implements Women {

    /*
     * 潘金莲啪啪啪
     * @see 设计模式.Women#papapa()
     */
    @Override
    public void papapa() {
        System.out.println("潘金莲高喊亚麻跌!!");
    }

定义王媒婆

public class WangPo implements Women {

    Women women;//要代理的对象
    //默认我就是潘金莲的代理
    public WangPo() {
        PanJinLian pjl = new PanJinLian();
        this.women = pjl;
    }
    //我还是别的姑娘的代理
    public WangPo(Women women) {
        this.women = women;
    }
    //要想啪啪啪 我就会调用我代理的啪啪啪
    @Override
    public void papapa() {
        this.women.papapa();
    }

主角西门庆

public class XiMenQing {
    public static void main(String[] args) {
        //想要啪啪啪 我的去找王妈妈啊
        WangPo wangPo = new WangPo();
        //告诉王媒婆他空虚寂寞冷
        wangPo.papapa();//输出 潘金莲高喊亚麻跌!!
    }
}
时间: 2024-08-10 14:14:10

【设计模式】代理设计模式的相关文章

iOS_代理设计模式demo

main.m // // main.m // 代理设计模式 /* 代理设计模式的3种使用场合 1,A 想让B 帮他做些事情, 可以让B成为A的代理先 2,A 想通知B,A发生了一些事情,可以让B成为A的代理先 3,B 想监听A发生了一些事情, 可以让B成为A的代理先 代理设置模式的标准4步 1,定义一份protocol协议 2,B想做代理,必须先遵守并实现上面那份协议 3,A里面定义一个成员 id <protocol> delegate 4,将B的实例对象,赋值给A的成员变量delegate

代理设计模式

1. 什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样. 什么是代理设计模式 生活中大家一定遇到这样的情况了:比如说我要买一包纸,不妨就是心相印的吧,那一般人的话我应该不是去心相印的工厂里面直接去买吧,而是我们在心相印专卖店或者什

UI开发----target/action设计模式和代理设计模式以及手势识别器

//  Created By 郭仔  2015年04月16日21:50:33 眼睛有点痛,视力也在急速下降,心灵之窗,注意保护! ================================================ 耦合是衡量?一个程序写的好坏的标准之?一, 耦合是衡量模块与模块之间关联程度的指标 "?高内聚,低耦合"是?面向对象编程的核⼼心思想: ================ 设计模式思想很重要的 ================== target/action设计模

设计模式 - 代理模式(proxy pattern) 未使用代理模式 详解

代理模式(proxy pattern) 未使用代理模式 详解 本文地址: http://blog.csdn.net/caroline_wendy 部分代码参考: http://blog.csdn.net/caroline_wendy/article/details/37698747 如果需要监控(monitor)类的某些状态, 则需要编写一个监控类, 并同过监控类进行监控. 但仅仅局限于本地, 如果需要远程监控, 则需要使用代理模式(proxy pattern). 具体方法: 1. 类中需要提供

设计模式——代理模式

概念 代理模式(Proxy),为其他对象提供一种代理以控制对象的访问. 模式结构 一个是真正的你要访问的对象(目标类),一个是代理对象,真正对象与代理对象实现同一个接口,先访问代理类再 访问真正要访问的对象. 代理模式UML图 代码实战 <span style="font-family:KaiTi_GB2312;font-size:18px;"> //代理模式 class  Proxy : IGiveGift                   //让"代理&qu

你真的了解iOS代理设计模式吗?

OS中消息传递方式 在iOS中有很多种消息传递方式,这里先简单介绍一下各种消息传递方式. 通知:在iOS中由通知中心进行消息接收和消息广播,是一种一对多的消息传递方式. 代理:是一种通用的设计模式,iOS中对代理支持的很好,由代理对象.委托者.协议三部分组成. block:iOS4.0中引入的一种回调方法,可以将回调处理代码直接写在block代码块中,看起来逻辑清晰代码整齐. target action:通过将对象传递到另一个类中,在另一个类中将该对象当做target的方式,来调用该对象方法,从

开发进阶11_代理设计模式_键盘的简单处理

代理设计模式: 1.使用场合 -> A想让B帮忙做一些事情,就让B成为A的代理 ->A想通知一下B发生了某些事情,或者想传递一些数据给B,就让B成为A的代理 ->B想监听A所做的一些事情,就让B成为A的代理 2.使用步骤 ->定义一份协议 ->B要遵守协议,实现相应的方法 ->A中要定义一个代理属性,id<协议> delegate ->创建B对象,设置A的delegate属性为B对象 键盘的简单处理: TextField:keyborad type属性

Objectvie - c代理设计模式

代理(delegate) 也称为委托,事情发生后,自己不处理,让别人来处理. 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问. 代理设计模式的角色: 1.抽象角色:声明真实对象和代理对象的共同接口:再这里是协议protocol 2.代理角色:代理对象角色内容含有对真是对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以 便在任何时刻都能代替真实对象,同时代理对象可以再执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装. 3.真实角色:代理角色所代表的

23种设计模式----------代理模式(二)

(上一篇)23种设计模式----------代理模式(一) 之前说了基本的代理模式和普通代理模式.接下来开始看下强制代理模式和虚拟代理模式 三,强制代理模式: 一般的代理模式都是通过代理类找到被代理的对象,从而调用被代理类中的方法(即完成被代理类中的任务). 而,强制代理模式则是先找到被代理类自己去完成事情,然后被代理类又将该做的事情转交到代理类中,让代理类来完成. 假如:你有事求助于某位名人. 你告诉名人说有事想请他帮忙,然后他说最近一段时间比较忙,要不你找我的经纪人来办吧. (本来找名人办事

23种设计模式----------代理模式(三) 之 动态代理模式

(上一篇)种设计模式----------代理模式(二) 当然代理模式中,用的最广泛的,用的最多的是  动态代理模式. 动态代理:就是实现阶段不用关系代理是哪个,而在运行阶段指定具体哪个代理. 抽象接口的类图如下: --图来自设计模式之禅 所以动态代理模式要有一个InvocationHandler接口 和 GamePlayerIH实现类.其中 InvocationHandler是JD提供的动态代理接口,对被代理类的方法进行代理. 代码实现如下 抽象主题类或者接口: 1 package com.ye