代理模式(初学)

news/2024/10/23 5:38:51/

代理模式

一、什么是代理模式

  • 代理模式:为其他对象提供一种代理以控制对这个对象的访问

二、简单例子

在这里插入图片描述

  • 这里面的骏骏就起到了代理的身份,而贵贵则是被代理的身份。

三、代码实现

1、用一个接口(GivingGifts)来保存送礼物的动作

  • package java_proxy;/*** 这是送礼物的接口,要送礼物就要实现接口*/
    public interface GivingGifts {void sendingDolls();   //送玩偶void sendEarrings();   //送耳环void sendingFlowers(); //送鲜花
    }
    

2、航航的类

  • 属性用于保存姓名

  • public class Gril {public String name;public Gril(String nameString){this.name = nameString;}
    }
    

3、被代理类(贵贵)

  • /*** 贵贵*/
    public class Lmg implements GivingGifts{private Gril gril;   //要送东西的对象public Lmg(Gril gril) {this.gril = gril;  //通过构造器将要送东西的航航信息录进来}@Overridepublic void sendingDolls() {System.out.println("lmg送玩偶给"+gril.name);}@Overridepublic void sendEarrings() {System.out.println("lmg送耳环给"+gril.name);}@Overridepublic void sendingFlowers() {System.out.println("lmg送鲜花给"+gril.name);}}
    

4、代理类(骏骏)

  • /*** 代理类,代理lmg要做的事*/
    public class Zzj implements GivingGifts{private Lmg lmg;   public Zzj(Gril gril) {   //将航航的信息通过lmg的构造器导入进去,因为lmg这个类不声明lmg = new Lmg(gril);}@Overridepublic void sendingDolls() {lmg.sendingDolls();}@Overridepublic void sendEarrings() {lmg.sendEarrings();}@Overridepublic void sendingFlowers() {lmg.sendingFlowers();}}
    

5、测试代码

  • public class Main {public static void main(String[] args) {Gril lwh = new Gril("lwh");  //声明被送礼物的人的对象Zzj zzj = new Zzj(lwh);  //声明代理类的对象,并将对方信息导入zzj.sendingDolls();zzj.sendEarrings();zzj.sendingFlowers();}
    }
    
  • 在这里插入图片描述


http://www.ppmy.cn/news/1162161.html

相关文章

Matlab论文插图绘制模板第121期—图中图

不知不觉,《Matlab论文插图绘制模板》系列教程已经连载更新了120期,而《Matlab进阶绘图》系列也更新了30期,分享了一系列各式各样数据图的标准化绘制模板: 本期分享的内容比较特殊,它可以串联起之前分享的一众数据图&a…

spring 资源操作:Resources

文章目录 Spring Resources概述Resource接口Resource的实现类UrlResource访问网络资源ClassPathResource 访问类路径下资源FileSystemResource 访问文件系统资源ServletContextResourceInputStreamResourceByteArrayResource Resource类图ResourceLoader 接口ResourceLoader 概…

IT售前“楠“知识之这!就是售前-尚文网络xUP楠哥

进Q群11372462领取专属报名福利 !!! # 何为售前工程师 售前工程师在一个IT信息化团队中起到了呈上启下的绝对重要作用!站在销售团队的视角,需要售前工程师从技术维度支持销售业务的开展;站在对立面用户的…

【APP源码】基于Typecho博客程序开发的博客社区资讯APP源码

全新博客社区资讯APP源码 Typecho后端 一款功能全面,用户交互良好,数据本地缓存,集成邮箱验证,在线投稿,(内置Mardown编辑器), 快捷评论的的博客资讯APP。同时兼容H5和微信小程序。 …

nodejs+vue 学生宿舍管理系统设计与实现

可将教师信息、宿管信息、学生信息、楼栋信息等输入到系统中。只有管理员才能录入相关的资料,按照提示,输入相应的资料,而“导入”则可以通过上传档案,导入成功后,相应的寝室就会相应的减少。在录入大楼的时候&#xf…

SimpleCG图像操作基础

上一篇我们介绍了程序的交互功能,就可以编写一些简单的游戏了,例如贪吃蛇、扫雷、俄罗斯方块、五子棋等,都可以使用图形函数直接绘制,在后续文章中将逐一展示。不过编写画面丰富游戏离不开图像,所以本篇我们介绍一下基…

Stable Diffusion的模型选择,采样器选择,关键词

一、Stable Diffusion的模型选择: 模型下载地址:https://civitai.com/,需要科学上网。 Deliberate:全能模型,prompt越详细生成的图片质量越好Realistic Vision:现实模型,生成仿真式图片&#…

【15】基础知识:React扩展知识

一、setState 1. setState 更新状态的 2 种写法 对象式的 setState 语法:setState(stateChange, [callback]) (1)stateChange 为状态改变对象(该对象可以体现出状态的更改) (2)callback 是…