设计模式 代理模式

代理模式主要使用了 Java 的多态,主要是接口
干活的是被代理类,代理类主要是接活,

你让我干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?

同根就成,大家知根知底,你能做啥,我能做啥都清楚的很,同一个接口呗。

cpp 复制代码
有一种快乐的女性,你懂的
public interface KindWomen { 
 
	//这种类型的女人能做什么事情呢?
	public void makeEyesWithMan(); //抛媚眼
	 
	 
	public void happyWithMan(); //happy what? You know that!
 
} 

两个这种的人,实现接口

cpp 复制代码
金莲:
public class PanJinLian implements KindWomen { 
	public void happyWithMan() { 
		 System.out.println("潘金莲在和男人做那个....."); 
	 } 
	
	public void makeEyesWithMan() { 
		 System.out.println("潘金莲抛媚眼"); 
	 } 
} 
再定一个丑陋的王婆: 

public class WangPo implements KindWomen { 
	private KindWomen kindWomen; //实际被代理的类
 
	public WangPo(){ //默认的话,是潘金莲的代理
		 this.kindWomen = new PanJinLian(); 
	 } 
 
	//她可以是KindWomen的任何一个女人的代理,只要你是这一类型
	public WangPo(KindWomen kindWomen){ 
		 this.kindWomen = kindWomen; 
	 } 
 
	public void happyWithMan() { 
		 this.kindWomen.happyWithMan(); //自己老了,干不了,可以让年轻的代替
	 } 
	public void makeEyesWithMan() { 
		 this.kindWomen.makeEyesWithMan(); //王婆这么大年龄了,谁看她抛媚眼?!
	 } 
} 
两个女主角都上场了,

大官人:

cpp 复制代码
public class XiMenQing { 
 
/*
 */
public static void main(String[] args) { 
 //把王婆叫出来
 WangPo wangPo = new WangPo(); 
 
 //然后西门庆就说,我要和金莲happy,然后王婆就安排了丢筷子的那出戏:
 wangPo.makeEyesWithMan(); //看到没,虽然表面上时王婆在做,实际上爽的是潘金莲
 wangPo.happyWithMan(); } 
}

另一个女:

cpp 复制代码
public class JiaShi implements KindWomen { 
	public void happyWithMan() { 
		 System.out.println("贾氏正在Happy中......"); 
		 } 
	public void makeEyesWithMan() { 
		 System.out.println("贾氏抛媚眼"); 
	 } 
}
cpp 复制代码
public class XiMenQing { 
 
public static void main(String[] args) { 
 //改编一下历史,贾氏被西门庆勾走:
 JiaShi jiaShi = new JiaShi(); 
 WangPo wangPo = new WangPo(jiaShi); //让王婆作为贾氏的代理人
 
 wangPo.makeEyesWithMan(); 
 wangPo.happyWithMan(); 
 } 
} 
相关推荐
雨中飘荡的记忆42 分钟前
深入理解设计模式之适配器模式
java·设计模式
雨中飘荡的记忆1 小时前
深入理解设计模式之装饰者模式
java·设计模式
老鼠只爱大米1 小时前
Java设计模式之外观模式(Facade)详解
java·设计模式·外观模式·facade·java设计模式
qq_172805591 小时前
Go 语言结构型设计模式深度解析
开发语言·设计模式·golang
佛祖让我来巡山19 小时前
设计模式深度解析:策略模式、责任链模式与模板模式
设计模式·责任链模式·策略模式·模版模式
__万波__20 小时前
二十三种设计模式(三)--抽象工厂模式
java·设计模式·抽象工厂模式
转转技术团队20 小时前
VDOM 编年史
前端·设计模式·前端框架
明洞日记1 天前
【设计模式手册014】解释器模式 - 语言解释的优雅实现
java·设计模式·解释器模式
ZHE|张恒1 天前
设计模式(十六)迭代器模式 — 统一访问集合元素的方式,不暴露内部结构
设计模式·迭代器模式
未秃头的程序猿1 天前
🚀 设计模式在复杂支付系统中的应用:策略+工厂+模板方法模式实战
后端·设计模式