首页 > 其他分享 >04-代理模式

04-代理模式

时间:2023-01-17 10:23:38浏览次数:51  
标签:04 void 代理 模式 Override girl Pursuer public pursuer

04代理模式

背景

本博客是照着程杰的《大话设计模式》一书实现的Java代码的版本,再加自己的一点理解

问题

卓贾易追求娇娇的方式是派出自己的好友戴笠

实现该模型的代码逻辑

女孩类

package com.gof.proxy;

/**
 * 功能描述
 *
 * @since 2023-01-17
 */
public class SchoolGirl {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

送礼物接口

package com.gof.proxy;

/**
 * 功能描述
 *
 * @since 2023-01-17
 */
public interface GiveGift {
    void givingFlower();

    void givingChocolate();

    void givingDolly();
}

追求者类


package com.gof.proxy;

/**
 * 功能描述
 *
 * @since 2023-01-17
 */
public class Pursuer implements GiveGift {
    private SchoolGirl girl;

    public Pursuer(SchoolGirl girl) {
        this.girl = girl;
    }

    @Override
    public void givingFlower() {
        System.out.println("送花给" + girl.getName());
    }

    @Override
    public void givingChocolate() {
        System.out.println("送巧克力给" + girl.getName());
    }

    @Override
    public void givingDolly() {
        System.out.println("送洋娃娃给" + girl.getName());

    }
}

代理类


package com.gof.proxy;

/**
 * 功能描述
 *
 * @since 2023-01-17
 */
public class Proxy implements GiveGift {
    private Pursuer pursuer;

    public Proxy(Pursuer pursuer) {
        this.pursuer = pursuer;
    }

    @Override
    public void givingFlower() {
        pursuer.givingFlower();
    }

    @Override
    public void givingChocolate() {
        pursuer.givingChocolate();
    }

    @Override
    public void givingDolly() {
        pursuer.givingDolly();
    }
}

客户端


package com.gof.proxy;

/**
 * 功能描述
 *
 * @since 2023-01-17
 */
public class Client {
    public static void main(String[] args) {
        SchoolGirl girl = new SchoolGirl();
        girl.setName("jiaojiao");
        Pursuer zhuojiayi = new Pursuer(girl);
        Proxy daili = new Proxy(zhuojiayi);
        daili.givingChocolate();
        daili.givingDolly();
        daili.givingFlower();
    }
}

个人理解

代理类和真实类应该实现了同一个接口,因为代理实现的时候只是调用真实类的实现
简单理解,后续还需要深入

标签:04,void,代理,模式,Override,girl,Pursuer,public,pursuer
From: https://www.cnblogs.com/Oh-mydream/p/17057110.html

相关文章

  • 读书笔记:价值投资.03.商业模式是什么
    商业模式是什么这个世界上有很多公司,靠商业模式赚钱.比如Uber,滴滴,几乎不拥有出租车,却是市场上最大的出租车公司.比如airbnb,几乎不拥有任何一家酒店,却是全球......
  • 设计模式之单例模式
    一、什么是单例模式?单例设计模式属于创建型模式范畴,所以主要用于处理对象创建和操作,当我们需要确保只创建一个特定类的实例,然后为整个应用程序提供对该实例的简单全局访问......
  • 设计模式——概览
     设计模式分二十三种,三大类,分别是:对象创建型抽象工厂、生成器、工厂方法、原型、单例结构型适配器、桥接、组合、装饰器、外观、享元、代理行为型责任链、......
  • 手写笔记22:代理模式
    ......
  • 18.(行为型模式)java设计模式之观察者模式
    一、什么是观察者模式定义对象间⼀种⼀对多的依赖关系,使得每当⼀个对象改变状态,则所有依赖于它的对象都会得到通知并⾃动更新,也叫做发布订阅模式Publish/Subscribe,属于⾏......
  • 学习模式-组合模式
    组合模式组合模式(CompositePattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的......
  • adg3304使用注意事项
    1.常见的电平转换芯片有74LVC4245,74LVC8T245,这两个芯片有方向和使能控制引脚。 ADG3304有使能脚,但是没有方向选择脚。2.3304不用的引脚不允许悬空,必须接vcc或者gnd。3.......
  • 13.(行为型模式)java设计模式之模板模式
    一、什么是模板模式定义⼀个操作中的算法⻣架,将算法的⼀些步骤延迟到⼦类中,使得⼦类可以不改变该算法结构的情况下重定义该算法的某些特定步骤,属于⾏为型模式二、模板模......
  • 学习记录-迭代器模式
    迭代器模式迭代器模式(IteratorPattern)是Java和.Net编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式......
  • 学习记录-备忘录模式
    备忘录模式备忘录模式(MementoPattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。介绍意图:在不破坏封装性的前提下,捕获一个对象的内......