设计模式-外观模式

外观模式(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方法中,外观类将请求委派给适当的子系统对象。

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

相关推荐
高晶9 小时前
SPMI 控制器 RTL 设计与验证新手入门
设计模式·程序员·架构
geovindu17 小时前
rust:N-Barrier Pattern
开发语言·后端·设计模式·rust·屏障模式·并发型模式
顧棟17 小时前
OpenAPI 网关:鉴权 + 流量治理 一体化设计方案与实现
java·spring boot·设计模式
拆房老料18 小时前
【第四部分:Agentic 智能体设计模式】17. Agent 路由模式详解:从意图识别到动态模型选择
java·设计模式·ai编程·策略模式
是2的10次方啊19 小时前
设计模式与生活⑩:地铁没变,你换了个状态
设计模式
步行cgn2 天前
适配器设计模式:一个“翻译官”的故事
设计模式
扶尔魔ocy2 天前
【QT C++】常用设计模式
c++·设计模式
她说..2 天前
常见设计模式-观察者模式
java·spring boot·spring·观察者模式·设计模式
是2的10次方啊2 天前
设计模式与生活⑨:一碗胡辣汤,用不着认识十几种香料
设计模式
geovindu3 天前
rust: Semaphore Pattern
开发语言·后端·设计模式·rust·代理模式·企业级信号量模式·同步型模式