代理模式小记【原创】

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

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

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

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

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

posted @ 2012-03-23 13:21  人生如若初见  阅读(421)  评论(3编辑  收藏  举报