【设计模式】以国足的例子来解释代理模式,希望自己不要被退钱

这篇具有很好参考价值的文章主要介绍了【设计模式】以国足的例子来解释代理模式,希望自己不要被退钱。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 代理模式

1.1 代理模式的解释

通过引入一个新的对象来实现对真实对象的操作或者将新的对象作为真是对象的一个替身,这种机制被称为代理模式。通过引入代理对象来间接访问一个对象,这就是代理模式的模式动机。

代理模式:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英文为Proxy或Surrogate,他是一种对象结构模型。

1.2 代理模式的四个对象

  • 抽象对象:一般会使用接口或者抽象类解决
  • 真实角色:被代理的角色
  • 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作
  • 客户:访问代理对象的人

2 例子

解释结构模型国足,设计模式,java,设计模式,其他

2.1 释义

Cup:代表世界杯

FootballTeam:国足

Client:我们

我们想要国足冲出亚洲,杀进世界杯!

2.2 代码

Cup.interface

public interface Cup {
    public void win();
}

FootballTeam.java

public class FootballTeam implements Cup{
    @Override
    public void win() {
        System.out.println("国足冲出亚洲!");
    }
}

Client.java

public class Client {
    public static void main(String[] args) {
        FootballTeam footballTeam = new FootballTeam();
        footballTeam.win();
    }
}

2.3 效果图

解释结构模型国足,设计模式,java,设计模式,其他

最终国足成功冲出了亚洲,但是国足真的有这个实力吗?一向直性子的范大将军一马当先说出了自己的见解:“中国足球脸都不要了”

与此同时,朱雀体育台的足球场也是硝烟滚滚,一群红衣男子的出现,让这场比赛变得不再平凡。

解释结构模型国足,设计模式,java,设计模式,其他

歇斯底里的怒吼,酣畅淋漓的表达了对国足的爱

3 静态代理模式

可是,我们知道国足还是国足,但是我们不再是我们。

于是乎,我们找来了更具杀伤力的武器—“外援”(Proxy),在本设计模式中也就是代理。

解释结构模型国足,设计模式,java,设计模式,其他

3.1 解释

解释结构模型国足,设计模式,java,设计模式,其他

国足要冲出亚洲,但是没有这个能力,所以他找来了"外援",外援要带领国足冲出亚洲,与此同时外援还不吃海参刻苦训练

在本例子中,抽象角色就是Cup,真实角色就是国足FootballTeam,国足要冲出亚洲,但是没有那个能力。于是让代理角色"外援"进来帮助我们,外援代理可以让国足冲出亚洲,同时还有一些附属操作:不吃海参、刻苦训。,身为客户的我们,就可以看到一场惊魂动魄的比赛,"外援"和国足球员同心合力,最终冲出亚洲!

3.2 代码

Cup.interface

public interface Cup {
    public void win();
}

FootballTeam.java

public class FootballTeam implements Cup{
    @Override
    public void win() {
        System.out.println("国足要冲出亚洲!");
    }
}

ForeignAid.java

public class ForeignAid implements Cup{
    private FootballTeam footballTeam;

    public ForeignAid(FootballTeam footballTeam) {
        this.footballTeam = footballTeam;
    }

    public ForeignAid() {
    }

    @Override
    public void win() {
        notEat();
        train();
        footballTeam.win();

    }
    /* 不吃海参 */
    public void notEat()
    {
        System.out.println("外援不吃海参!");
    }
    /* 刻苦训练 */
    public void train()
    {
        System.out.println("外援刻苦训练!");
    }
}

Client.java

public class Client {
    public static void main(String[] args) {
        FootballTeam footballTeam = new FootballTeam();
        ForeignAid foreignAid = new ForeignAid(footballTeam);
        foreignAid.win();
    }
}

3.3 效果图

解释结构模型国足,设计模式,java,设计模式,其他

4 代理模式的优缺点

4.1 代理模式的优点

  • 可以使真实角色的操作更加的纯粹!不用去关注一些公共的业务。
  • 公共业务交给代理角色!实现了业务分工,如国足只是表达了要冲出亚洲的"决心",其他的由"外援"去解决。
  • 公共业务发生扩展的时候,方便集中管理。

4.2 代理模式的缺点

  • 一个真实角色就会产生一个代理角色,代码量会翻倍。

以上例子,仅为调侃,期待国足能够屡败屡战,真正为中国人争光!文章来源地址https://www.toymoban.com/news/detail-831722.html

到了这里,关于【设计模式】以国足的例子来解释代理模式,希望自己不要被退钱的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 设计模式——解释器模式

    更多内容,前往IT-BLOG 在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的表达式(例如:正则表达式等),那么这些问题实例将是该表达式的一些句子,这样就可以用 “编译原理” 中的解释器模式来实现。 【1】解释

    2024年02月03日
    浏览(72)
  • 设计模式:解释器模式

    解释器模式(Interpreter Pattern)是一种行为型设计模式,它定义了一种语言的文法,并且定义了该语言中各个元素的解释器。通过使用解释器,可以解析和执行特定的语言表达式。 解释器模式的核心思想是将一个语言的文法表示为一个类的层次结构,并使用该类的实例来表示

    2024年02月07日
    浏览(51)
  • 设计模式详解-解释器模式

    类型:行为型模式 实现原理:实现了一个表达式接口,该接口使用标识来解释语言中的句子 作用:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器来解释。 主要解决:一些重复的固定文法分别创建解释器会很麻烦 何时使用:某一种特定类型的问题发生的

    2024年02月12日
    浏览(58)
  • 设计模式(23)解释器模式

    一、介绍: 1、定义:解释器(Interpreter)模式是一种对象的行为模式。给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 2、组成结构: (1)AbstractExpression(抽象表达式):约定解释器的解释操作,主要是一个interpret()方

    2024年02月06日
    浏览(56)
  • 【设计模式】六、【创建性模式】揭秘单例模式:从生活例子到Java代码

    转自:提升工作效率-单例模式详解 1、介绍 单例模式的产生,它主要是为了解决在软件系统中,对于一些类,我们只需要创建一个全局唯一的实例。例如,系统的配置信息、数据库连接池等。如果有多个实例可能会导致状态不一致,或者额外的资源消耗。这个需求在很多软件

    2024年02月06日
    浏览(46)
  • 设计模式(行为型模式)解释器模式

       解释器模式(Interpreter Pattern) 是一种行为设计模式,用于解释特定语言或处理特定问题领域的语法或表达式。它定义了一种语言的语法表示,并使用该表示来解释语言中的句子。通常用于构建解析器、编译器和规则评估引擎等场景。 在解释器模式中,有以下关键角色:

    2024年02月20日
    浏览(54)
  • 设计模式之解释器模式(下)

    3)Context的作用 1.概述 在解释器模式中,环境类Context用于存储解释器之外的一些全局信息,它通常作为参数被传递到所有表达式的解释方法interpret()中,可以在Context对象中存储和访问表达式解释器的状态,向表达式解释器提供一些全局的、公共的数据,此外还可以在Context中

    2024年04月12日
    浏览(51)
  • 设计模式之解释器模式笔记

    记录下学习设计模式-解释器模式的写法。JDK使用版本为1.8版本。 意图 :定义一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 结构 : 其中: AbstractExpression 声明一个程序的解释操作,这个接口为抽象语法树中所有的结点所

    2024年02月11日
    浏览(57)
  • js设计模式:解释器模式

    对文本进行解释和编译的时候,就会用到解释器模式 比如你写了一段js代码,js引擎就会去解释并执行这段代码 webpack中的各种loader就是用来解释各种文件类型的,并将其解释为js可识别的代码

    2024年02月22日
    浏览(49)
  • Java设计模式-解释器模式

    一、概述 如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。 上面的形式比较单一、有限,如果形式变化非常多,这就不符合要求,因为加法和减法运算,两个运算符与数值可以有无限种组合方式。比如 1+2+3+4+5、

    2024年01月17日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包