• 设计模式 代理模式


    代理模式主要使用了 Java 的多态,主要是接口
    干活的是被代理类,代理类主要是接活,
    你让我干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?
    同根就成,大家知根知底,你能做啥,我能做啥都清楚的很,同一个接口呗。

    有一种快乐的女性,你懂的
    public interface KindWomen { 
     
    	//这种类型的女人能做什么事情呢?
    	public void makeEyesWithMan(); //抛媚眼
    	 
    	 
    	public void happyWithMan(); //happy what? You know that!
     
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    两个这种的人,实现接口
    在这里插入图片描述
    在这里插入图片描述

    金莲:
    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(); //王婆这么大年龄了,谁看她抛媚眼?!
    	 } 
    } 
    两个女主角都上场了,
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在这里插入图片描述
    大官人:

    public class XiMenQing { 
     
    /*
     */
    public static void main(String[] args) { 
     //把王婆叫出来
     WangPo wangPo = new WangPo(); 
     
     //然后西门庆就说,我要和金莲happy,然后王婆就安排了丢筷子的那出戏:
     wangPo.makeEyesWithMan(); //看到没,虽然表面上时王婆在做,实际上爽的是潘金莲
     wangPo.happyWithMan(); } 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    另一个女:

    
    public class JiaShi implements KindWomen { 
    	public void happyWithMan() { 
    		 System.out.println("贾氏正在Happy中......"); 
    		 } 
    	public void makeEyesWithMan() { 
    		 System.out.println("贾氏抛媚眼"); 
    	 } 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    public class XiMenQing { 
     
    public static void main(String[] args) { 
     //改编一下历史,贾氏被西门庆勾走:
     JiaShi jiaShi = new JiaShi(); 
     WangPo wangPo = new WangPo(jiaShi); //让王婆作为贾氏的代理人
     
     wangPo.makeEyesWithMan(); 
     wangPo.happyWithMan(); 
     } 
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    【深度学习】 Python 和 NumPy 系列教程(八):Python类
    第三章 栈、队列和数组
    Spring MVC源码详解
    Python保留格式复制多个Excel工作表到汇总表并生成目录(附源码下载)
    conda 克隆/复制 虚拟环境
    【Python零基础入门篇 · 4】:字符串的运算符、下标和切片
    WinForm应用实战开发指南 - 教你如何实现表头的全选操作?
    [牛客网刷题 Day6] JZ27 二叉树的镜像
    Java之反射获取和赋值字段
    Java筑基33-网络编程01-TCP网络编程&Socket
  • 原文地址:https://blog.csdn.net/qq_38757863/article/details/136583007