GoF设计模式(九) - 外观模式

简化系统接口:外观模式详解
本文介绍了外观模式,通过创建一个高层的 Facade 类来隐藏子系统(如SubSystemA、B、C)的复杂性,使客户端更易使用。它强调了降低耦合、提高易用性和安全性,但指出不遵循开闭原则。

前言

外观模式(Facade),提供一个高层次的接口,隐藏系统的复杂性,使得子系统更易于使用。

 

 

具体实现

子系统类 :

public class SubSystemA {

    public void methodA(){
        System.out.println("执行子系统方法A");
    }
}
public class SubSystemB {

    public void methodB(){
        System.out.println("执行子系统方法B");
    }
}
public class SubSystemC {

    public void methodC(){
        System.out.println("执行子系统方法C");
    }
}

外观类

public class Facade {
    private final SubSystemA subSystemA;
    private final SubSystemB subSystemB;
    private final SubSystemC subSystemC;

    public Facade(){
        subSystemA = new SubSystemA();
        subSystemB = new SubSystemB();
        subSystemC = new SubSystemC();
    }

    public void method(){
        subSystemA.methodA();
        subSystemB.methodB();
        subSystemC.methodC();
    }
}
@SpringBootTest
class FacadeDemoApplicationTests {

	@Test
	void contextLoads() {
		Facade facade = new Facade();
		facade.method();
	}

}

 

优缺点

优点

  • 降低了客户端与子系统的耦合关系。
  • 让子系统更加易用,客户端不再需要了解子系统内部的实现。
  • 提高了安全性,例如有些方法是对系统外的,有些方法是系统内部使用的,把需要暴露给外部的功能集中到外观中,这样既方便客户端使用,也很好地隐藏了内部的细节。

缺点

  • 不符合“开闭原则”,新增子系统时需要修改外观类。

 

源码

https://download.youkuaiyun.com/download/javanbme/63206958 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让程序飞

您的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值