外观模式,又称结构型模式,其核心思想在于提供一个统一的接口给外部应用程序,使得应用程序无需关心内部子系统的具体细节。通过这种设计,我们可以大大降低应用程序的复杂度,提高其可维护性。
二、角色介绍1. 外观角色:为子系统提供一个共同的接口,作为外部访问的桥梁。
2. 子系统角色:实现系统的部分功能,通过外观角色对外提供服务。
三、案例及UML类图展示案例描述:
设想有一个动物世界,其中所有的动物都有吃、睡、跑的基本行为。我们定义一个动物接口,让不同的动物如狗和人类实现这些行为。
UML类图:
1. 类Animal:定义动物接口,充当外观角色,定义了吃、睡、跑三个方法的公共接口。
```java
public interface Animal {
void eat();
void sleep();
void run();
}
```
2. 类Dog:狗类实现Animal接口,作为子系统角色,实现了狗特有的功能。
```java
public class Dog implements Animal {
@Override
public void eat() {
System.out.println("用舌头舔着吃");
}
// 其他方法实现...
}
```
3. 类Person:人类也实现Animal接口,作为子系统角色,实现了人类特有的功能。
```java
public class Person implements Animal {
@Override
public void eat() {
System.out.println("用手把食物放入嘴巴吃");
}
// 其他方法实现...
}
```
4. 类FacadeTest:测试及客户端类,通过Animal接口调用不同子系统的功能。
```java
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(); // 调用狗类的睡的方法
}
}
```
四、适用场景外观模式适用于分层结构开发中,如常见的controller、service、dao三层结构。通过接口的统一调用,可以有效隔离各层之间的依赖关系,提高系统的可维护性和可扩展性。
文章来自《钓虾网小编|www.jnqjk.cn》整理于网络,文章内容不代表本站立场,转载请注明出处。