1. 什么是门面模式
门面模式(Facade Pattern)是一种结构型设计模式,它为一组复杂的子系统提供一个统一、简洁的对外接口,让客户端无需关心内部细节即可使用系统功能。
可以把它理解为「一站式前台」:客户端只需要和门面对话,门面内部再去协调各个子系统。
2. 适用场景
- 外部系统需要访问一个复杂系统的部分功能,但又不希望直接面对大量类。
- 希望降低子系统与客户端之间的耦合度。
- 需要为分层系统的每一层定义统一的入口。
3. C++ 代码示例
#include<iostream>classCPU{public:voidstart(){std::cout<<"CPU 启动\n";}};classMemory{public:voidload(){std::cout<<"内存加载\n";}};classDisk{public:voidread(){std::cout<<"磁盘读取\n";}};// 门面类:封装复杂的启动流程classComputer{public:voidpowerOn(){cpu.start();memory.load();disk.read();std::cout<<"电脑启动完成\n";}private:CPU cpu;Memory memory;Disk disk;};intmain(){Computer computer;computer.powerOn();// 客户端只需调用一个方法return0;}4. 小结
门面模式的核心在于提供一个简洁的接口隔离复杂度,优点是可读性和可维护性更好,缺点是门面可能逐渐膨胀。在需要简化调用、解耦子系统时,它是非常实用的选择。