设计模式之——外观模式

一、基本介绍

外观模式(结构型):对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

二、包含角色

1.外观角色:为子系统对外提供一个共同的接口。

2.子系统角色:实现系统的部分功能,客户可以通过外观角色访问它。

三、案例及UML类图

案例说明:

           动物接口定义了吃睡跑三个功能,让各个不同的动物实现其方法,进行不同种类的操作。

UML类图:

类Animal:

public interface Animal {

    void eat();

    void sleep();

    void run();
}

说明:动物接口,外观角色,定义子系统的公共接口。

类Dog:

public class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("用舌头舔着吃");
    }

    @Override
    public void sleep() {
        System.out.println("趴着睡");
    }

    @Override
    public void run() {
        System.out.println("四只脚跑");
    }
}

说明:狗类,子系统角色,实现狗的功能。

类Person:

public class Person implements Animal {

    @Override
    public void eat() {
        System.out.println("用手把食物放入嘴巴吃");
    }

    @Override
    public void sleep() {
        System.out.println("躺着睡");
    }

    @Override
    public void run() {
        System.out.println("两只脚跑");
    }
}

说明:人类,子系统角色,实现人的功能。

类FacadeTest:

public class FacadeTest {

    public static void main(String[] args) {
        Animal animal = new Person();
        animal.eat();
        animal.run();
        animal.sleep();
        System.out.println("——————————");
        animal = new Dog();
        animal.eat();
        animal.run();
        animal.sleep();
    }
}

说明:测试及客户端类。

四、适用场景

1.适用于分层结构开发中,如controller、service、dao三层结构开发中,都是通过接口去调用。

2.用于需要对访问者屏蔽各个子系统的具体细节,而需对其提供接口的需求中。

发布了35 篇原创文章 · 获赞 61 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/m0_37914588/article/details/103906082