《Design Patterns》Facade.积跬步系列

Facade:外观模式

先代码

package h.l.demo.facade;

/**
 * 
 * @author: Is-Me-Hl
 * @date: 2020年2月23日
 * @Description: 外观类:需要了解所有子系统的方法或属性,进行组合以备外界调用
 */
public class FacadeClass {
	// 子系统一
	SubSystemOne subSystemOne;
	// 子系统二
	SubSystemTwo subSystemTwo;
	// 子系统三
	SubSystemThree subSystemThree;
	// 子系统四
	SubSystemFour subSystemFour;
	
	public FacadeClass(){
		subSystemOne = new SubSystemOne();
		subSystemTwo = new SubSystemTwo();
		subSystemThree = new SubSystemThree();
		subSystemFour = new SubSystemFour();
	}
	
	// 外界调用接口一
	public void methodA(){
		System.out.println("方法组A():");
		subSystemOne.methodOne();
		subSystemTwo.methodTwo();
	}
	// 外界调用接口二
	public void methodB(){
		System.out.println("方法组B():");
		subSystemThree.methodThree();
		subSystemFour.methodFour();
	}
	
	public static void main(String[] args) {
		new FacadeClass().methodA();
		System.out.println("----------------------");
		new FacadeClass().methodB();
	}

}
/**
 * 
 * @author: Is-Me-Hl
 * @date: 2020年2月23日
 * @Description: 子系统一
 */
class SubSystemOne{
	public void methodOne(){
		System.out.println("子系统方法一");
	}
}
/**
 * 
 * @author: Is-Me-Hl
 * @date: 2020年2月23日
 * @Description: 子系统二
 */
class SubSystemTwo{
	public void methodTwo(){
		System.out.println("子系统方法二");
	}
}
/**
 * 
 * @author: Is-Me-Hl
 * @date: 2020年2月23日
 * @Description: 子系统三
 */
class SubSystemThree{
	public void methodThree(){
		System.out.println("子系统方法三");
	}
}
/**
 * 
 * @author: Is-Me-Hl
 * @date: 2020年2月23日
 * @Description: 子系统四
 */
class SubSystemFour{
	public void methodFour(){
		System.out.println("子系统方法四");
	}
}

测试结果:
在这里插入图片描述

后分析

  • 个人建议:写代码是件幸福的事,So,do it

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。通俗理解,就是对于一个客户,他做买卖希望的是能派一个代表出来和他谈就好了,不用诶个交流。那这个外观模式(门面模式)就是这个代表,就相当于客户可以通过这个代表而和这些人交流。映射到代码片段,就是用过这个外观类,我们可以更好的使用其他类组合提供的方法。反过来看,如上述代码中注释为外界调用接口一、外界调用接口二的代码,实际上对应的方法集成了其他子系统的功能,那么就想,比如其他客户端经常使用这几个子系统的功能,那每个客户端都要写一遍这样的方法,索性就将这样的一个代码块提到高层接口中,重构一下。

其他例子:参考自《大话设计模式》炒民炒股和基金投资。这个例子其实更好理解。真实生活中,很多股民都会自个去买各种股票。但这时候基金出来了,基金说我可以帮你们管理这些钱,我买很多类股票,我帮你操作,以至于你的钱不会放一个篮子里被打空。这其实就反应了这种模式。基金相当于各种股票的门面,老百姓购买基金即可知道涨幅。无须每天都盯着每一支股票的走势了。


注:以上文章仅是个人总结,若有不当之处,望不吝赐教

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值