第2章 代理模式【Proxy Pattern】
什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。
比如西门庆找潘金莲,那潘金莲不好意思答复呀,咋办,找那个王婆做代理,表现在程序上时这样的:
先定义一种类型的女人:
package com.cbf4life.proxy;/*** @author cbf4Life cbf4life@126.com* I'm glad to share my knowledge with you all.*/public class JiaShi implements KindWomen {public void happyWithMan() {System.out.println("贾氏正在Happy中......");}public void makeEyesWithMan() {System.out.println("贾氏抛媚眼");}}西门庆勾贾氏:package com.cbf4life.proxy;/*** @author cbf4Life cbf4life@126.com* I'm glad to share my knowledge with you all.* 定义一个西门庆,这人色中饿鬼*/public class XiMenQing {public static void main(String[] args) {//改编一下历史,贾氏被西门庆勾走:JiaShi jiaShi = new JiaShi();WangPo wangPo = new WangPo(jiaShi); //让王婆作为贾氏的代理人wangPo.makeEyesWithMan();wangPo.happyWithMan();}}说完这个故事,那额总结一下,代理模式主要使用了Java的多态,干活的是被代理类,代理类主要是接活,你让我干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,大家知根知底,你能做啥,我能做啥都清楚的很,同一个接口呗。