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

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

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

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

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

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

  • 相关阅读:
    Linux下MySQL/MariaDB Galera集群搭建过程
    Linux下Nginx+Tomcat负载均衡和动静分离配置要点
    快速部署tomcat项目的Shell脚本
    利用缓存实现APP端与服务器接口交互的Session控制
    基于xml的Spring多数据源配置和使用
    基于注解的Spring多数据源配置和使用
    MySQL 开启事件 使用定时器调用存储过程
    MyBatis绑定错误--BindingException:Invalid bound statement (not found)
    micropython1.16官方文档转PDF
    dokuwiki使用随笔
  • 原文地址:https://www.cnblogs.com/winkey4986/p/2413493.html
Copyright © 2011-2022 走看看