外观模式,女孩子的择偶标准!

​ 大家周末好呀!今天想和大家谈一下女孩子!哦不是,外观模式。

​ 啥是外观模式捏?它能干啥捏?有啥优缺点呢?

​ 我们知道设计模式分为三大类,一类是创建型模式,第二类是结构型模式,最后一类是行为型模式。那外观模式是属于哪一种呢?听我细细道来。

​ 外观模式是一种隐藏系统的复杂性,提供给客户端一个可以访问系统接口的设计模式。主要解决访问复杂系统内部子系统时的复杂度,客户端不需要知道服务端到底内部结构复杂与否,整个系统只需要提供给一个接待员即可,即像我们服务端提供给前端的接口一般。实现了客户端与系统的解耦,外观类与系统的耦合

​ 一个是说减少系统的依赖性,提供灵活性,安全性

​ 如何构建外观模式呢,首先是服务端这边一个系统的接口,和多个具体实现的系统类,一个对外展示的外观类,对应要访问系统的客户端

​ 相信大家看一眼都会了,咱们话不多说,直接开码!

类图:

在这里插入图片描述

具体代码实现:

public interface System {

    /**
     * 外部接口
     */
    public void externalInterface();


    /**
     * 内部接口
     */
    public void internalInterface();
}

public class SubSystem1 implements System {
    @Override
    public void externalInterface() {
        java.lang.System.out.println("SubSystem1 externalInterface");

    }

    @Override
    public void internalInterface() {
        java.lang.System.out.println("SubSystem1 internalInterface");
    }
}

public class SubSystem2 implements System {
    @Override
    public void externalInterface() {
        java.lang.System.out.println("SubSystem2 externalInterface");
    }

    @Override
    public void internalInterface() {
        java.lang.System.out.println("SubSystem2 internalInterface");
    }
}

public class SubSystem3 implements System {
    @Override
    public void externalInterface() {
        java.lang.System.out.println("SubSystem3 externalInterface");
    }

    @Override
    public void internalInterface() {
        java.lang.System.out.println("SubSystem3 internalInterface");
    }
}

public class SystemShower {
    private System subSystem1;
    private System subSystem2;
    private System subSystem3;

    public SystemShower() {
        subSystem1 = new SubSystem1();
        subSystem2 = new SubSystem2();
        subSystem3 = new SubSystem3();
    }

    public void show() {
        subSystem1.externalInterface();
        subSystem2.externalInterface();
        subSystem3.externalInterface();
    }

}

public class Client {
    public static void main(String[] args) {
        SystemShower systemShower = new SystemShower();

        systemShower.show();
    }
}
/*
SubSystem1 externalInterface
SubSystem2 externalInterface
SubSystem3 externalInterface
*/
复制代码

​ 看完代码,想必你已经知道外观模式是什么类型的设计模式了。是的,就是结构型模式了, 这类设计模式更关注类和对象的组合

​ 好了,本章节就到这里啦,希望对你有所帮助!

愿每个人都能带着怀疑的态度去阅读文章并探究其中原理。

道阻且长,往事作序,来日为章。

期待我们下一次相遇!

猜你喜欢

转载自juejin.im/post/7019530717411409933