Java 设计模式系列(13) —— 外观模式(门面模式)

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

学习必须往深处挖,挖的越深,基础越扎实! 

外观模式(门面模式)

外观模式的定义:
要求一个子系统的外部预期内部的通信必须通过一个统一的对象进行,外观模式提供了一个高层次的接口,使得子系统更容易使用

外观模式的参与者:

  • Client 客户端:
  • Facade 子系统接口:客户端可以调用该角色的方法,该角色知晓相关模块的子功能和责任。该门面是客户端调用子系统的桥梁。
  • Subsystem 子系统中定义的类:子系统是具体业务的实现,但是子系统并不需要被调用的是谁
外观模式的简单示例

Subsystem

  1. SubClassA
    public class SubClassA {
    	public void executeProcedureA() {
    		System.out.println("Subclass A is executing Procedure A");
    	}
    
    }
  1. SubClassB
    public class SubClassB {
    	public void executeProcedureB() {
    		System.out.println("Subclass B is executing Procedure B");
    	}
    }

Facade 对象

    public class Facade {
    	private SubClassA sa = new SubClassA();
    	private SubClassB sb = new SubClassB();
    	
    	public void doingA() {
    		sa.executeProcedureA();
    	}
    	
    	public void doingB() {
    		sb.executeProcedureB();
    	}
    
    }

Client

    public class Client {
    	public static void main(String[] args) {
    		Facade f = new Facade();
    		f.doingA();
    		f.doingB();
    	}
    	
    }
外观模式的优缺点和使用场景

外观模式的优点:

  • 减少系统的相互依赖
  • 提高了灵活性
  • 提高安全性

外观模式的缺点:

  • 不符合开闭原则

外观模式的应用场景

  • 为一个复杂的模块或子系统提供一个供外界访问的接口
  • 子系统相对独立
  • 预防低水平人员带来的风险扩散
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值