简述建设电子商务网站步骤网页开发应用软件
外观设计模式
- 🚩什么是外观设计模式?
- 🚩外观设计模式的特点
- 🚩外观设计模式的结构
- 🚩外观设计模式的优缺点
- 🚩外观设计模式的Java实现
- 🚩代码总结
- 🚩总结
🚩什么是外观设计模式?
外观设计模式(Facade Pattern) 是一种 结构型设计模式,它提供了一个 统一的接口,用于访问子系统中的一组接口。外观模式通过定义一个 高层接口,简化了客户端与子系统之间的交互,隐藏了子系统的复杂性。
使用场景
-  当需要为 复杂的子系统 提供一个 简单的接口 时。 
-  当需要 解耦客户端与子系统 时,使子系统更容易维护和扩展。 
-  当需要 分层构建系统 时,外观模式可以作为每层的入口点。 
🚩外观设计模式的特点
-  简化接口:外观模式提供了一个简化的接口,隐藏了子系统的复杂性。 
-  解耦:客户端与子系统之间通过外观接口交互,降低了耦合度。 
-  易用性:客户端无需了解子系统的内部细节,只需调用外观接口即可。 
-  灵活性:子系统可以独立变化,只要外观接口保持不变,客户端代码无需修改。 
🚩外观设计模式的结构
外观模式主要包含以下部分:
-  Facade(外观):提供一个统一的接口,客户端通过该接口与子系统交互。 
-  SubSystem(子系统):由多个类或模块组成,实现具体的功能。 
-  Client(客户端):通过 Facade接口与子系统交互,无需直接调用子系统的类。
🚩外观设计模式的优缺点
✅ 优点
-  简化接口:外观模式提供了一个简化的接口,隐藏了子系统的复杂性。 
-  解耦:客户端与子系统之间通过外观接口交互,降低了耦合度。 
-  易用性:客户端无需了解子系统的内部细节,只需调用外观接口即可。 
-  灵活性:子系统可以独立变化,只要外观接口保持不变,客户端代码无需修改。 
❌ 缺点
-  不符合开闭原则:如果子系统需要新增功能,可能需要修改外观接口。 
-  过度依赖:客户端可能过度依赖外观接口,导致外观接口变得臃肿。 
🚩外观设计模式的Java实现
代码地址:GitHub
-  创建 子系统类 SubSystemOne、SubSystemTwo 和 SubSystemThree,分别实现具体的功能。- 子系统1SubSystemOne
 /*** @author hanson.huang* @version V1.0* @ClassName SubSystemOne* @Description 子系统1* @date 2025/3/24 17:00**/ public class SubSystemOne {public void methodOne() {System.out.println("执行子系统一的功能");} }- 子系统2SubSystemTwo
 /*** @author hanson.huang* @version V1.0* @ClassName SubSystemTwo* @Description 子系统2* @date 2025/3/24 17:03**/ public class SubSystemTwo {public void methodTwo() {System.out.println("执行子系统二的功能");} }- 子系统3SubSystemThree
 /*** @author hanson.huang* @version V1.0* @ClassName SubSystemThree* @Description 子系统3* @date 2025/3/24 17:04**/ public class SubSystemThree {public void methodThree() {System.out.println("执行子系统三的功能");} }
- 子系统1
-  创建 外观类 Facade,提供一个统一的接口,封装子系统的调用。
/*** @author hanson.huang* @version V1.0* @ClassName Facade* @Description 外观类* @date 2025/3/24 17:04**/
public class Facade {SubSystemOne subSystemOne;SubSystemTwo subSystemTwo;SubSystemThree subSystemThree;public Facade() {subSystemOne = new SubSystemOne();subSystemTwo = new SubSystemTwo();subSystemThree = new SubSystemThree();}public void methodA() {subSystemOne.methodOne();}public void methodB() {subSystemTwo.methodTwo();}public void methodC() {subSystemThree.methodThree();}
}
- 测试外观模式
/*** @author hanson.huang* @version V1.0* @ClassName FacadePattern* @Description 测试外观模式* @date 2025/3/24 17:08**/
public class FacadePattern {public static void main(String[] args) {Facade facade = new Facade();facade.methodA();facade.methodB();facade.methodC();}
}
📌 运行结果

🚩代码总结
-  子系统类 SubSystemOne、SubSystemTwo 和 SubSystemThree 分别实现具体的功能。 
-  外观类 Facade 提供一个统一的接口,封装子系统的调用。 
-  客户端 通过 外观类 与子系统交互,无需直接调用子系统的类。 
🚩总结
-  外观设计模式(Facade Pattern) 提供了一个 统一的接口,用于访问子系统中的一组接口,简化了客户端与子系统之间的交互。 
-  适用于 为复杂子系统提供简单接口、解耦客户端与子系统 或 分层构建系统 的场景。 
-  Java 实现 需要 定义子系统类 和 外观类,并通过外观类封装子系统的调用。 
✅ 适用场景:
-  需要为 复杂的子系统 提供一个 简单的接口 时。 
-  需要 解耦客户端与子系统 时。 
-  需要 分层构建系统 时。 
-  Java中许多地方用到了外观模式,在Java的GUI编程中, javax.swing包大量运用了外观模式。例如,创建一个简单的窗口,你可以借助JFrame这个外观类,而不用直接去操作底层复杂的窗口创建和管理机制。
创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

