zoukankan      html  css  js  c++  java
  • 代理模式小记【原创】

         什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。 

         比如西门庆找潘金莲,那潘金莲不好意思答复呀,咋办,找那个王婆做代理。 

         先定义一个这类女人的接口KindWoman,接口里写几个抽象方法“抛媚眼”、“ooxx”。然后定义具体的这类女人——潘金莲,实现接口和里面的两个方法。接下来才是代理模式的精华。定义一个代理——王婆,其实她和“潘金莲”类都是KindWoman的实现类(或子类),不同的是,她里面还定义了一个KindWoman的属性,并包含一个构造方法,构造方法的目的就是当其被客户端——西门庆-_-||调用时,传入真正的操作对象潘金莲给KindWoman(类的多态)。“王婆”(代理者)还有一点和“潘金莲”(被代理者)不同,王婆只是一个传话的,虽然和“潘金莲”一样都是KindWoman的实现类,但是“抛媚眼”、“ooxx”。。。。这些方法肯定不能和“潘金莲”一样去实现吧!刚才不是在“王婆”里定义了KindWoman吗?对了,此时的KindWoman实际上就是客户端传入的“潘金莲”,“王婆”的“抛媚眼”、“ooxx”。。。。等方法里,实际上就是调用“潘金莲”对象的“抛媚眼”、“ooxx”。。。。方法。

       好了,最后在客户端——男猪脚——“西门庆”类里面就简单了,只需要new一个“王婆”,构造方法里传入“潘金莲”,犯罪就可以进行了........-_-||

       一句话概括代理模式的特点——子类的相互依赖!

  • 相关阅读:
    VS和IE或者360兼容模式简单调试js方法
    sqlserver2008自动备份,自动删除较早的别分文件
    EasyUI合并行
    sqlserver导入excel的电话号码(身份证)变为科学计数解决方式
    文本框灰色文字提示,鼠标点击文字消失
    Asp.net MVC 中Controller返回值类型ActionResult
    SQL中CONVERT()转化函数的用法 字符串转日期
    死锁的简单实现
    生产者消费者问题
    [leecode]Implement strStr()
  • 原文地址:https://www.cnblogs.com/winkey4986/p/2413493.html
Copyright © 2011-2022 走看看