一、基本介绍
外观模式(结构型):对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。
二、包含角色
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三层结构开发中,都是通过接口去调用。
共同学习,写下你的评论
评论加载中...
作者其他优质文章