设计模式 代理模式

代理模式主要使用了 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(); 
 } 
} 
相关推荐
小白不太白95011 小时前
设计模式之 模板方法模式
java·设计模式·模板方法模式
色空大师11 小时前
23种设计模式
java·开发语言·设计模式
闲人一枚(学习中)11 小时前
设计模式-创建型-建造者模式
java·设计模式·建造者模式
博风12 小时前
设计模式:6、装饰模式(包装器)
设计模式
A_cot12 小时前
理解设计模式与 UML 类图:构建稳健软件架构的基石
microsoft·设计模式·简单工厂模式·工厂方法模式·uml
君败红颜12 小时前
设计模式之创建模式篇
设计模式
闲人一枚(学习中)15 小时前
设计模式-创建型-抽象工厂模式
设计模式·抽象工厂模式
小白不太白95017 小时前
设计模式之 观察者模式
观察者模式·设计模式
小白不太白95018 小时前
设计模式之 责任链模式
python·设计模式·责任链模式
吾与谁归in19 小时前
【C#设计模式(13)——代理模式(Proxy Pattern)】
设计模式·c#·代理模式