外观模式

外观(Facade)模式:为多个复杂的子系统提供一个一致的接口,从而使这些子系统更容易被访问。

外观(Facade)模式角色:
(1)外观(Facade)角色:为多个子系统对外提供一个共同的接口。
(2)子系统(Sub System)角色:客户通过外观角色访问其接口。

张无忌学会了九阳神功,乾坤大挪移、太极拳剑。张无忌就相当于外观角色。而子系统包括三个:火工头陀、阳顶天、张三丰。张无忌为三个子系统提供一致的接口,你想访问那种武功,统一经过外观角色(张无忌)便可。外观角色具有收集癖,收集子系统的接口服务,客户只需和外观角色交互即可。

示例:

// 子系统1:火工头陀
public class HuoGongTouTuo{
	// 使出九阳神功
	public void showJiuYangShenGong(){
		System.out.println("九阳神功");
	}
}
// 子系统2:阳顶天
public class YangDingTian{
	public void showQianKunDaNuoYi(){
		System.out.println("乾坤大挪移");
	}
}
// 子系统3:张三丰
public class ZhangSanFeng{
	public void showTaiJiQuanJian(){
		System.out.println("太极拳剑");
	}
}
// 外观角色:张无忌
public class ZhangWuJi{
	HuoGongTouTuo hgtt;
	YangDingTian ydt;
	ZhangSanFeng zsf;

	public ZhangWuJi(){
		hgtt = new HuoGongTouTuo();
		ydt = new YangDingTian();
		zsf = new ZhangSanFeng();
	}

	public void showQianKunDaNuoYi(){
		System.out.println("乾坤大挪移");
	}

	public void showTaiJiQuanJian(){
		System.out.println("太极拳剑");
	}

	public void showJiuYangShenGong(){
		System.out.println("九阳神功");
	}
}
// 测试
public class Test{
	public static void main(String[] args){
		ZhangWuJi zwj = new ZhangWuJi();
		zwj.showJiuYangShenGong();
		zwj.showQianKunDaNuoYi();
		zwj.showTaiJiQuanJian();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值