代理模式:在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。
以上就是代理模式的简介

定义一个接口

package 设计模式.代理模式;
//定义一个接口,接口里面有三个需要实现的方法
public interface GiveGirl {
//这个是玩偶方法public void giveDolls();//这个是送花的方法public void giveFlowers();//这个是给电影票的方法public void giveMovie();
}

我把被追求者类和追求者类写在一起了,下面的代码包含这两个类

package 设计模式.代理模式;
//被追求者类
public class SGril {private String name;//    添加set和get方法public void setName(String name) {this.name = name;}public String getName() {return name;}
}//追求者类  和被追求者写在一块了
class Pursuit implements GiveGirl{SGril mm;
//有参构造方法public Pursuit(SGril mm) {this.mm = mm;}
//实现了接口,因此需要重写三个方法@Overridepublic void giveDolls() {System.out.println(mm.getName()+"  送你玩偶");}@Overridepublic void giveFlowers() {System.out.println(mm.getName()+"  送你花");}@Overridepublic void giveMovie() {System.out.println(mm.getName() + "  给你电影票");}
}

最后加上一个代理类,代替追求者向被追求者送东西

package 设计模式.代理模式;
//代理类
public class Proxy implements GiveGirl{
//    把追求者类的变量先定义出来Pursuit p;//一个构造方法,把被追求者对象传给new 出的追求者public Proxy(SGril mm) {p = new Pursuit(mm);}
//重写三个方法,到追求者类中调用@Overridepublic void giveDolls() {p.giveDolls();}@Overridepublic void giveFlowers() {p.giveFlowers();}@Overridepublic void giveMovie() {p.giveMovie();}
}

再加上一个测试主类

package 设计模式.代理模式;public class Test {public static void main(String[] args) {
//        为被追求者类new一个对象SGril jiaojiao = new SGril();jiaojiao.setName("李娇娇");
//        为代理类new 一个对象Proxy li = new Proxy(jiaojiao);li.giveDolls();li.giveFlowers();li.giveMovie();}
}

这个就是代理模式的代码实现,
参考大佬博客:https://blog.csdn.net/yixiang1989/article/details/38493543

大话设计模式-代理模式(大鸟和小菜Java版)相关推荐

  1. 大话设计模式-装饰模式(大鸟和小菜Java版)

    装饰模式:装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.(百度百科) 这个模式让后期的修改变得极为简单,真的就高内 ...

  2. 大话设计模式—代理模式

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能.这种类型的设计模式属于结构型模式.我们创建具有现有对象的对象,以便向外界提供功能接口. 大话设计模式中程杰老师的给出的解释是代理模 ...

  3. linkin大话设计模式--代理模式

    代理模式是一种应用非常广泛的设计模式,当客户端代码需要调用某个对象的时候,客户端并不关心是否可以准确的得到这个对象,他只要一个能够提供该功能的对象而已,此时我们就可以返回该对象的代理.总而言之,客户端 ...

  4. 大话设计模式-代理模式

    代理模式 Spring AOP就是使用的动态代理 概念:在代理模式(Proxy Pattern)中,一个类代表另一个类的功能,创建具有现有对象的对象,以便向外界提供功能接口 意图:为其他对象提供一种代 ...

  5. Java设计模式(代理模式-模板方法模式-命令模式)

    Java设计模式Ⅴ 1.代理模式 1.1 代理模式概述 1.2 静态代理 1.2.1 静态代理概述 1.2.2 代码理解 1.3 动态代理之JDK代理 1.3.1 动态代理之JDK代理概述 1.3.2 ...

  6. java设计模式代理模式_Java中的代理设计模式

    java设计模式代理模式 代理对象或代理对象为另一个对象提供占位符,以控制对该对象的访问. 代理充当原始对象的轻量级版本或简化版本. 它支持与原始对象相同的操作,但可以将那些请求委托给原始对象以实现它 ...

  7. Java设计模式—代理模式

    1. 什么是代理模式? 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问. 2. 代理模式有什么好处? 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标 ...

  8. linkin大话设计模式--常用模式总结

    linkin大话设计模式--常用模式总结 一,常用设计模式定义 Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. Adapter( ...

  9. [设计模式] - 代理模式(静态代理与动态代理)

    文章目录 一.代理模式简介 1. 什么是代理模式 2. 简单举例 二.代理模式的设计思路 1. 代理模式的构成 1. 静态代理 2. 动态代理 (1)接口代理 (2)Cglib代理 三. 代理模式总结 ...

最新文章

  1. cygwin和mingw编译软件的疑问
  2. linux 下的远程上传命令行,使用scp命令用命令行从服务器上传下载文件
  3. Hyperledger Fabric 1.0发布:基于区块链的开源分布式账本
  4. socket.io 中文手册 socket.io 中文文档
  5. flutter 自定义键盘_入门级机械键盘选购对比
  6. python支持复数类型以下什么说法是错误的,【Python】专项练习题(1)
  7. Qt学习笔记-Qt程序切换皮肤
  8. 弹性伸缩Auto Scaling产品全面升级,轻松应对业务负载变化,张弛有度,收放自如!...
  9. 金蝶云星空使用WebAPI来新增单据
  10. Docker的常用操作
  11. UE4有linux版本吗,ue4软件下载 rhinos软件 ue4
  12. 并行学习框架下基于GAN的城市道路网短时路段交通预测方法
  13. delphi csdn论坛技巧收藏贴
  14. RF- BuiltIn_Run Keyword关键字系列
  15. 将数组分成两部分,使得 |sum1 - sum2| 最小. LeetCode - 1049
  16. Intellij idear使用心得
  17. 二、软件项目开发计划书-模板
  18. P and V
  19. c#如何实现软件授权后才能使用?
  20. oracle11g自动内存管理好吗,Oracle11G新特性的研究之【自动内存管理】

热门文章

  1. ComponentOne 2016 V3 发布
  2. C#如何监听全局的事件-例如鼠标移动事件
  3. java ubb_月光软件站 - 编程文档 - Java - JAVA写的简单UBB类
  4. 期末课程设计——基于Python+MySQL数据库的学生管理系统(附源代码)
  5. 数据管理—1、指标体系
  6. Docker容器部署项目少了8个小时,问题解决Dockerfile修改linux时区
  7. oracle dsg ogg,ogg 、 Shareplex和DSG RealSync 对比
  8. BGP高防是什么意思呢?BGP高防服务器租用
  9. C#中datagridview选中行后textbox显示选中的内容
  10. 解决eclipse中Preferences里没有Tomcat选项的问题