外观模式--你指挥大管家就可以了

外观模式,英文表述为Facade。

外观模式,为了子系统中的一组接口提供一个一致的界面,次模式定义了一个高层接口,

这个接口使得这一子系统更加容易使用。

通俗的讲,比如有很多机器,他们分别可以完成不同的功能,你可以自己直接按照流程

去操作他们,也可以招一个大管家,直接跟他说你想什么,让他去操作就行了。

外观模式还是很好理解的,先看看类图熟悉下框架结构:



其中包括四个子系统,以及一个大管家Facade类,User为客户端使用类,

在实际运行中,User只要调用Facade类的方法就行了。

下面看类源代码:

SubSystemOne类:

package com.blog.anla.Facade;

public class SubSystemOne {
	public void methodOne(){
		System.out.println("I am method one!");
	}
}


SubSystemTwo类:

package com.blog.anla.Facade;

public class SubSystemTwo {
	public void methodTwo(){
		System.out.println("I am method two!");
	}
}


SubSystemThree类:

package com.blog.anla.Facade;

public class SubSystemThree {
	public void methodThree(){
		System.out.println("I am method three!");
	}
}


SubSystemFour类:

package com.blog.anla.Facade;

public class SubSystemFour {
	public void methodFour(){
		System.out.println("I am method four!");
	}
}


Facade类:

package com.blog.anla.Facade;
/**
 * Facade外观类,知道那些子系统类负责处理
 * 请求,将客户的请求代理给适当的子系统对象
 * @author U-ANLA
 *
 */
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();
		three.methodThree();
	}
	
	public void methodB(){
		System.out.println("集成方法B");
		three.methodThree();
		four.methodFour();
		one.methodOne();
	}
}


User类:

package com.blog.anla.Facade;
/**
 * 客户端类,使用Facade的类
 * @author U-ANLA
 *
 */
public class User {
	public static void main(String[] args) {
		Facade facade = new Facade();
		facade.methodA();
		facade.methodB();
	}
}

赠人玫瑰手留余香(oo)






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值