设计模式笔记————外观模式

本文深入讲解了外观模式的概念,通过创建一个高层接口简化了子系统的使用。介绍了如何在设计初期和开发阶段应用此模式,以降低系统耦合度,并展示了在维护遗留系统时如何利用外观模式来交互复杂工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

外观模式结构图
外观模式结构图

四个子系统类:

public class SubSystemOne {

	public void MethodOne() {
		System.out.println("子系统方法一");
	}
}

public class SubSystemTwo {

	public void MethodTwo() {
		System.out.println("子系统方法二");
	}
}

public class SubSystemThree {

	public void MethodThree() {
		System.out.println("子系统方法三");
	}
}

public class SubSystemFour {

	public void MethodFour() {
		System.out.println("子系统方法四");
	}
}

外观类:

public class Facade {

	private SubSystemOne one;
	private SubSystemTwo two;
	private SubSystemThree three;
	private SubSystemFour four;
	
	public Facade() {
		one = new SubSystemOne();
		two = new SubSystemTwo();
		three = new SubSystemThree();
		four = new SubSystemFour();
	}
	
	public void MethodA() {
		System.out.println("方法组A");
		one.MethodOne();
		two.MethodTwo();
		four.MethodFour();
	}
	
	public void MethodB() {
		System.out.println("方法组B");
		two.MethodTwo();
		three.MethodThree();
	}
}

客户端调用:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		Facade facade = new Facade();
		
		facade.MethodA();
		facade.MethodB();
	}

何时使用外观模式

  • 在设计初期,应该有意识的将不同的两个层分离,层与层之间建立外观 Facade 类,这样可以为复杂的子系统提供一个简单的接口,使耦合降低。
  • 在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观 Facade 类可以提供一个简单的接口,减少它们之间的依赖。
  • 在维护遗留的大型系统时,可以为新系统开发一个外观 Facade 类,让新系统与 Facade 对象交互,Facade 与遗留代码交互复杂的工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值