• 设计模式 代理模式


    代理模式主要使用了 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
  • 相关阅读:
    小程序用vue编写,保存表单出错
    计算机图像处理-高斯滤波
    Mysql 的安装
    对NFT许可的观察:事实与虚构
    C语言-结构体
    【调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输】
    STM32个人笔记-FatFs文件系统
    MVCC之RC、RR隔离级别下可见性的分析
    Flutter - APP主界面Tabbar保持页面状态
    如何看待AIGC技术?
  • 原文地址:https://blog.csdn.net/qq_38757863/article/details/136583007