外观模式(Facade)

外观模式(Facade)

Façade类是把各个子系统的接口做了进一步抽象,让客户调用,客户只能和façade交互,不能直接和子系统交互。

1.关系图:

2.优点

(1)松散耦合:客户端和子系统之间解耦,子系统的内部模块更容易扩展和维护

(2)简单易用,客户端根本不知道子系统内部的实现构成,也无需关心

(3)更好的划分访问层次,子系统将用于外部访问的功能集中于façade中,在客户端的使用中,很好的隐藏了子系统的内部细节

3.代码

public class Client {
	Facade facade ;
	public Client(Facade facade)
	{
		this.facade=facade;
	}
	public void function()
	{
		facade.operation1();
		System.out.println("===================");
		facade.operation2();
	}
}
public class Facade {
	ChildSystem1 child1;
	ChildSystem2 child2;
	public Facade()
	{
		child1 = new ChildSystem1();
		child2 = new ChildSystem2();
	}
	public void operation1()
	{
		child1.operation1();
		child2.operation2();
	}
	public void operation2()
	{
		child1.operation2();
		child2.operation1();
	}
	//....可以多种组合
}

public class ChildSystem1 {
	public void operation1()
	{
		System.out.println("ChildSystem1:operation1");
	}
	public void operation2()
	{
		System.out.println("ChildSystem1:operation2");
	}
}

public class ChildSystem2 {
	public void operation1()
	{
		System.out.println("ChildSystem2:operation1");
	}
	public void operation2()
	{
		System.out.println("ChildSystem2:operation2");
	}
}


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值