1 代理模式

1.1 代理模式的解释

1.2 代理模式的四个对象

2 例子

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

2.1 释义

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

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 效果图

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

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

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

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

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

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

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

3 静态代理模式

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

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

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

3.1 解释

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

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

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 效果图

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

4 代理模式的优缺点

4.1 代理模式的优点

4.2 代理模式的缺点

以上例子,仅为调侃,期待国足能够屡败屡战,真正为中国人争光!

11-07 07:42