外观(Facade)设计模式

实在是不知道关于设计模式这个问题怎么总结,因为看书遇到了,使用外观设计模式的问题!这里就顺带着说些吧!

我就不明确定义了,这个模式在很多框架中都会使用

首先就是顾名思义,“外观” 假设我们有个收音机吧,我做了这个收音机,目的是让用户听,但是我不想让你知道系统中的细节,或者是系统中的很多细节对于一个用户来说是没有必要知道的,毕竟不是谁都是geek对吧!

那我怎么办呢?我会做个壳子,然后弄些按钮,目的是什么呢?目的就是让作为用户的你只能点点按按什么的,不让你直接调整我其中的参数。

这样一个典型的外观设计模式就出来了。


为子系统的部分或者全部接口提供一个统一的访问接口 ,当然我们要访问的统一接口也就是外观啦


UML图俺就不画了,来点代码看看吧~

先是Client的

package com.baobaoyeye.test;

import com.baobaoyeye.test.facade.Facade;

/**
 * @author baobaoyeye
 *
 */
public class Client {
	private Facade facade = new Facade();
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Client client = new Client();
		client.facade.Run();
		client.facade.Pause();
		client.facade.Stop();                                                  
	}
}

package com.baobaoyeye.test.facade;

/**
 * @author baobaoyeye
 *
 */
public class Facade {
	
	private Sub1 run = new Sub1();
	private Sub2 pause = new Sub2();
	private Sub3 stop = new Sub3();
	
	public void Run(){
		run.InitSub1();
		run.Run();
		run.DestorySub1();
	}
	public void Pause(){
		pause.InitSub2();
		pause.Pause();
		pause.DestorySub2();
	}
	public void Stop(){
		stop.InitSub3();
		stop.Stop();
		stop.DestorySub3();
	}
}


package com.baobaoyeye.test.facade;

/**
 * @author baobaoyeye
 *
 */
public class Sub1 {
	public void InitSub1(){
		System.out.println("init sub1");
	}

	public void Run(){
		System.out.println("running");
	}
	
	public void DestorySub1(){
		System.out.println("destory sub1");
	}

}



package com.baobaoyeye.test.facade;

/**
 * @author baobaoyeye
 *
 */
public class Sub2 {
	public void InitSub2(){
		System.out.println("init sub2");
	}
	public void Pause(){
		System.out.println("Paused");
	}
	public void DestorySub2(){
		System.out.println("destory sub2");
	}
}



package com.baobaoyeye.test.facade;

/**
 * @author baobaoyeye
 *
 */
public class Sub3 {
	public void InitSub3(){
		System.out.println("init sub3");
	}
	public void Stop(){
		System.out.println("stoped");
	}

	public void DestorySub3(){
		System.out.println("destory sub3");
	}
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值