抽象代理模式2.0版本

这篇具有很好参考价值的文章主要介绍了抽象代理模式2.0版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

1.0版本的核心

抽象代理模式2.0版本,代理模式

代理的定义 = A proxy, in its most general form, is a class functioning as an interface to something else. The proxy could interface to anything: a network connection, a large object in memory, a file, or some other resource that is expensive or impossible to duplicate. In short, a proxy is a wrapper(封装) or agent object that is being called by the client to access the real serving object behind the scenes

The Proxy design pattern allows you to provide an interface to other objects by creating a
wrapper(封装) class as the proxy. The wrapper class, which is the proxy, can add additional
functionality to the object of interest without changing the object's code.

翻译:代理,在其最普遍的形式中,是一个作为与其他事物接口的类代理可以连接任何接口:网络连接、内存中的大型对象、文件,或者其他昂贵或难以复制的资源。简而言之,代理是客户端(主语)调用的封装器或代理对象,(目的)用于访问幕后真正的业务对象

代理设计模式允许你通过创建一个封装类作为代理,为其他对象提供接口。作为代理的封装类可以在不更改对象代码的情况下为其添加额外的功能,而无需更改对象的代码。

1.封装类

举个例子就知道了,封装了一个产品的名字

package proxy;

public class wrapper {
    private String name;

    public wrapper(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return name;
    }
}

你可能觉得,封装类很像实体类,并不然,封装类其实是实体类的上一级

2.0的全新核心

单一产品

抽象代理模式2.0版本,代理模式

多个产品

抽象代理模式2.0版本,代理模式

正片:

单一产品

第一步:新建一个封装类(产品)

结构组成:私有访问变量 + 有参构造 + toStiring方法(函数)重构

第二步:新建一个业务对象(代理商)

package proxy;

public class wrapperIMP {
    public void enter(wrapper wrapper) {
        System.out.println(wrapper + " 欢迎来到站长的自言自语.");
    }
}

结构组成:无返回值enter方法

第三步:一个封装类作为代理(代理人)

public class wrapperR extends wrapperIMP {

    private static final int NUM_WIZARDS_ALLOWED = 3;

    private int i;

    @Override
    public void enter(wrapper wrapper) {
        if (i < NUM_WIZARDS_ALLOWED) {
            super.enter(wrapper);
            i++;
        } else {
            System.out.println(wrapper + "哈哈害!");
        }
    }
}

结构组成:继承wrapperIMP + 重构了父类的enter方法 (条件判断 )

第四步:模仿接口传入值

public class app {
    public static void main(String[] args) {

        wrapperR tower = new wrapperR();
        tower.enter(new wrapper("小红"));
        tower.enter(new wrapper("小明"));
        tower.enter(new wrapper("小黄"));
        tower.enter(new wrapper("小白"));
        tower.enter(new wrapper("小黑"));
    }
}

结构组成:new 一个代理人当成变量 + 调用代理人的enter方法

第五步运行:

抽象代理模式2.0版本,代理模式

发现没,代理模式中,我们的代码是全程一直走的,直到结束文章来源地址https://www.toymoban.com/news/detail-858498.html

到了这里,关于抽象代理模式2.0版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【设计模式】抽象工厂模式

    【设计模式】抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个

    2024年02月13日
    浏览(13)
  • 【创建型模式】抽象工厂模式

    【创建型模式】抽象工厂模式

    一、抽象工厂模式概述          抽象工厂模式定义 : 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。 模式动机 : 1.当系统提供的工厂生产的具体产品并不是一个简单的对象,而是多个位于不同产品等级结构、属于不同类型的具体产品时就可

    2024年04月25日
    浏览(7)
  • 设计模式(3)抽象工厂模式

    设计模式(3)抽象工厂模式

    一、介绍: 1、定义:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。 2、组成结构: (1)抽象工厂角色:担任这个角色的是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创建对象的工厂类必须实现这个接口。 (2)具体工厂角色

    2024年02月11日
    浏览(10)
  • 重温设计模式 --- 抽象工厂模式

    抽象工厂模式 一种创建型设计模式,它提供了一种方式来封装一组具有相同主题的工厂,而不必指定它们具体的类。这样,客户端代码就可以使用抽象工厂来创建一组相关的对象,而不必关心实际创建的具体类。 抽象工厂模式有以下几个主要角色: 抽象工厂(AbstractFactory)

    2024年02月13日
    浏览(19)
  • 设计模式(三):抽象工厂模式

    设计模式(三):抽象工厂模式

    抽象工厂模式 (Abstract Factory Pattern)属于创建型模式,是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。 在 抽象工厂模式 中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 通过使用 抽

    2024年04月25日
    浏览(11)
  • [设计模式]创建型模式-抽象工厂模式

    抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式将一组具有共同主题的单个工厂封装起来,它提供接口用于创建相关或依赖对象的家族,而不需要指定具体的类。 抽象工厂模式包含以下几个

    2024年03月08日
    浏览(10)
  • 设计模式-创建型模式-抽象工厂模式

    设计模式-创建型模式-抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。 由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系

    2024年02月22日
    浏览(11)
  • 【设计模式】创建型-抽象工厂模式

    【设计模式】创建型-抽象工厂模式

    在工厂方法模式中,每一个具体的工厂子类只能生成一种具体的产品,如果想要生产另外一种产品,就需要重新定义一个抽象工厂类,这样的拓展性还是会有点不足,而抽象工厂模式则是可以一个具体工厂可以生产不同的产品。 在学习抽象工厂模式之前先了解一下 产品族和

    2023年04月09日
    浏览(14)
  • Java设计模式-抽象工厂模式

    设计模式是软件设计中的一种常见方法,通过定义一系列通用的解决方案,来解决常见的软件设计问题。其中,抽象工厂模式是一种非常常见的设计模式,它可以帮助我们创建一组相关的对象,而不需要指定具体的实现方式。 抽象工厂模式是一种创建型设计模式,它提供了一

    2024年02月01日
    浏览(11)
  • [设计模式] 抽象工厂模式简易案例

    定义:提供一个接口来创建一系列相关或依赖对象,而无需指定其具体类。 痛点:当需要创建一组相关对象,例如操作系统的不同界面组件(按钮、文本框等)时,抽象工厂模式非常有用。 以下是一个简单的抽象工厂模式的 Java 示例,假设你要创建不同类型的按钮和窗口组

    2024年02月09日
    浏览(8)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包