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

2021/6/18 12:26:54

本文主要是介绍大话设计模式-代理模式(大鸟和小菜Java版),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

代理模式:在代理模式(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;
    }
//实现了接口,因此需要重写三个方法
    @Override
    public void giveDolls() {
        System.out.println(mm.getName()+"  送你玩偶");
    }

    @Override
    public void giveFlowers() {
        System.out.println(mm.getName()+"  送你花");
    }

    @Override
    public void giveMovie() {
        System.out.println(mm.getName() + "  给你电影票");
    }
}





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

package 设计模式.代理模式;
//代理类
public class Proxy implements GiveGirl{
//    把追求者类的变量先定义出来
    Pursuit p;

//一个构造方法,把被追求者对象传给new 出的追求者
    public Proxy(SGril mm) {
        p = new Pursuit(mm);
    }
//重写三个方法,到追求者类中调用
    @Override
    public void giveDolls() {
        p.giveDolls();
    }

    @Override
    public void giveFlowers() {
        p.giveFlowers();
    }

    @Override
    public 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版)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程