设计模式-外观模式

外观模式(Facade Pattern)是一种设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式隐藏了子系统的复杂性,使得客户端可以更简单地使用子系统。

在Java中,外观模式可以通过以下方式实现:

  1. 创建一个外观类(Facade),它提供了一个简单的接口来访问子系统中的一组接口。外观类知道哪些子系统类负责处理请求,将请求委派给适当的子系统对象。

  2. 创建一组子系统类,它们实现了具体的功能。这些子系统类可以是已经存在的类,也可以是新创建的类。

以下是一个简单的示例代码,演示了如何使用外观模式:

复制代码
// 子系统类
class SubsystemA {
	public void operationA() {
		System.out.println("Subsystem A operation");
	}
}

class SubsystemB {
	public void operationB() {
		System.out.println("Subsystem B operation");
	}
}

class SubsystemC {
	public void operationC() {
		System.out.println("Subsystem C operation");
	}
}

// 外观类
class Facade {
	private SubsystemA subsystemA;
	private SubsystemB subsystemB;
	private SubsystemC subsystemC;

	public Facade() {
		subsystemA = new SubsystemA();
		subsystemB = new SubsystemB();
		subsystemC = new SubsystemC();
	}

	public void operation() {
		subsystemA.operationA();
		subsystemB.operationB();
		subsystemC.operationC();
	}
}

// 客户端
public class Main {
	public static void main(String[] args) {
		Facade facade = new Facade();
		facade.operation();
	}
}

在这个示例中,SubsystemA、SubsystemB和SubsystemC是子系统类,它们实现了具体的功能。Facade类是外观类,它提供了一个简单的接口operation来访问子系统中的一组接口。在operation方法中,外观类将请求委派给适当的子系统对象。

在客户端中,通过实例化外观类来使用外观模式。客户端只需要调用外观类的方法,而不需要直接与子系统类交互。 外观模式可以简化客户端与子系统。

相关推荐
vker8 小时前
第 1 天:单例模式(Singleton Pattern)—— 创建型模式
java·设计模式
晨米酱1 天前
JavaScript 中"对象即函数"设计模式
前端·设计模式
数据智能老司机1 天前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构
使一颗心免于哀伤1 天前
《设计模式之禅》笔记摘录 - 21.状态模式
笔记·设计模式
数据智能老司机2 天前
精通 Python 设计模式——创建型设计模式
python·设计模式·架构
数据智能老司机2 天前
精通 Python 设计模式——SOLID 原则
python·设计模式·架构
烛阴2 天前
【TS 设计模式完全指南】懒加载、缓存与权限控制:代理模式在 TypeScript 中的三大妙用
javascript·设计模式·typescript