Java实现设计模式之外观模式

外观模式

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

1、  外观类需要了解所有的子系统的方法或属性,进组组合,以备外界调用,

2、  使用时期

a)      设计阶段:需有意识的将不同的两个层分离。

b)     开发阶段:增加外观façade提供一个简单的接口,应对子类的重演和演化。

c)       维护期间:使用façade类,为遗留代码提供清晰简单的接口,让新系统与façade交互,façade与遗留代码交互所有复杂的工作。


这是大话设计模式上实现的外观模式在股票上的使用,将facade类看做基金,客户与基金交互,基金封装各种股票的操作避免客户与股票直接联系。

原模式是c#的,我改成了Java版的:

/** 
*  @author   LilyLee
 * @date     2017年6月2日
 * @time     下午4:11:24
 * @Version  1.0
 * @email    lilylee_1213@foxmail.com
 *
 */
public class FacadeTest {

	
	public static void main(String[] args) {
		Facade fa=new Facade();
		fa.MethodA();
		fa.MethodB();
	}
}
	
	class Facade{
		SubSystem1 one;
		SubSystem2 two;
		SubSystem3 three;
		
		public Facade(){
			one=new SubSystem1();
			two=new SubSystem2();
			three=new SubSystem3();
		}
		
		public void MethodA(){
			System.out.println("方法A");
			one.methodOne();
			three.methodthree();
		}
		
		public void MethodB(){
			System.out.println("方法B");
			two.methodTwo();
			three.methodthree();
		}
		
	}
	
	//子系统(原本客户端需要跟子系统打交道,但是现在子系统被外观类调用封装,不再直接跟客户端打交道了)
	class SubSystem1{
		public void methodOne(){
			System.out.println("卖出股票!");
		}
	}
	
	class SubSystem2{
		public void methodTwo(){
			System.out.println("买入股票!");
		}
	}
	
	class SubSystem3{
		public void methodthree(){
			System.out.println("观望!");
		}
	}
	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值