持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情
前言
在前几篇章中我们讲了结构型模式的几个模式,现在我们大概回顾一下之前所学的内容,首先讲到了适配器,适配器允许你创建一个中间层类, 其可作为代码与遗留类、 第三方类或提供怪异接口的类之间的转换器。怪异就体现在,我这辆车他就要运行在火车轨道上面。
本章我们讲述外观模式,外观模式也被称为门面模式。门面也是每个人家中的大门,那么关上门就好比在他之前封装了,外面的用户看不到里面的内容,毕竟你门关着的其实也就代表着你不关心后面的内容,也就是实现,只通过门面来进行交流。
外观模式业务场景
上面说的可能有点绕,现在使用案例来带大家深入了解一下。外观模式的主要业务场景是的对其他的依赖包进行一个统一封装,如果引入的依赖直接在系统中使用,你会造成的系统代码的不稳定性与耦合度过高,不稳定性体现在如果第三方依赖有改动,那将会影响到我们的软件系。
外观模式代码
这里采用3个子系统来进行演示
package designmode.外观模式;
/**
* <p>
*
* </p>
*
* @author MouthMouth
* @since 2022/10/22
*/
public class Test {
public static void main(String[] args) {
Face face = new Face();
face.excuteOneTwo();
}
}
package designmode.外观模式;
/**
* <p>
*
* </p>
*
* @author MouthMouth
* @since 2022/10/22
*/
public class Face {
SubSystemOne subSystemOne;
SubSystemTwo subSystemTwo;
SubSystemThree subSystemThree;
//主要去执行的方法,扩展face类来达到解耦
public void excuteOneTwo(){
subSystemOne.excute();
subSystemTwo.excute();
}
}
package designmode.外观模式;
/**
* <p>
*
* </p>
*
* @author MouthMouth
* @since 2022/10/22
*/
public class SubSystemOne {
void excute(){
System.out.println("one");
}
}
package designmode.外观模式;
/**
* <p>
*
* </p>
*
* @author MouthMouth
* @since 2022/10/22
*/
public class SubSystemThree {
void excute(){
System.out.println("three");
}
}
package designmode.外观模式;
/**
* <p>
*
* </p>
*
* @author MouthMouth
* @since 2022/10/22
*/
public class SubSystemTwo {
void excute(){
System.out.println("two");
}
}