代理模式(初学)

代理模式

一、什么是代理模式

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

二、简单例子

在这里插入图片描述

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

三、代码实现

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.hqwc.cn/news/140140.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网工记背命令(6)----链路聚合配置

目录 1.配置手工负载分担模式链路聚合 2.配置LACP模式的链路聚合 3.HUAWEI设备与C厂商设备对接 链路聚合(Link Aggregation)是将多条物理链路捆绑在一起成为一条逻辑链路,从而增加链路带 宽的技术。 常用配置命令 1、执行命令 interface …

轻重链剖分+启发式合并专题

Codeforces-741D(Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths) 一棵根为1 的树,每条边上有一个字符(a-v共22种)。 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。 求每个子树中…

大数据Flink(九十七):EXPLAIN、USE和SHOW 子句

文章目录 EXPLAIN、USE和SHOW 子句 一、EXPLAIN 子句 二、USE 子句

C++特性——引用与指针详解

文章目录 引用1. 引用的作用1.1 引用可以做函数参数:1.2 引用做函数返回值: 2 常引用3 引用和指针3.1 引用和指针在语法层面和底层的异同3.1 引用和指针的不同 引用 简单来说,引用就是给一个变量起一个别名。例如: int a 1; in…

阿里云云服务器实例使用教学

目录 云服务器免费试用 详细步骤 Xshell 远程连接 云服务器免费试用 阿里云云服务器网址:阿里云免费试用 - 阿里云 详细步骤 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)…

vue 自定义指令 -- 指令的值

vue 自定义指令 – 指令的值 **创建 工程: H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day05\准备代码\05-自定义指令-指令的值 vue --vers…

k8s-13 存储之secret

Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key。 敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活 。 Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里 当 kubelet 为 pod 拉…

HugeGraph 部署和Hubble1.0.0的数据导入Bug修复

背景 HugeGraph 安装部署了最新版本1.0.0,发现它的 Web 工具 Hubble 有一个大 Bug。数据导入的时候,配置节点属性映射这个选项时,下拉框只有一个选项,但实际上,元数据配置中的属性有3个,这个 Bug 是怎么产…

从零开始搭建第一个django项目

目录 配置环境创建 Django 项目和 APP项目组成  ‍子目录文件组成应用文件组成 配置 settings.py启动项目 数据表创建models.pyDjango-models的常用字段和常用配置 Django-admin 引入admin后台和管理员外键views.pyurls.pypostman接口测试 QuerySetInstance功能APIView 的概念…

java学生通讯录管理系统

设计要求 本课程设计,涉及输入输出、GUI设计、数据库操作等本课程重要概念和编程技能,全面巩固和加深学生对java程序设计的相关概念的理解,全面强化java编程技能,培养学生综合运用所学知识和技能分析问题和解决问题的能力。培养学…

python web开发(四): Bootstrap

1.初步了解 别人已经写好的CSS样式&#xff0c;我们可以直接引用 下载 Link-BootStrap 解压&#xff0c;并放入到当前项目中 引用 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</tit…

chatglm2微调—ptuning

Freeze: 即参数冻结&#xff0c;对原始模型部分参数进行冻结操作&#xff0c;仅训练部分参数&#xff0c;以达到在单卡或不进行TP或PP操作&#xff0c;就可以对大模型进行训练。 P-Tuning: 在输入的embedding层前&#xff0c;将prompt转换为可学习的额外一层embedding层. P-T…