首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

读《研磨设计形式》-代码笔记-外观模式-Facade

2012-12-28 
读《研磨设计模式》-代码笔记-外观模式-Facade声明:本文只为方便我个人查阅和理解,详细的分析以及源代码请移

读《研磨设计模式》-代码笔记-外观模式-Facade
声明:
本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/


/* * 百度百科的定义: * Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面, * 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面 *  * 可简单地将外观模式理解为 * 将复杂子系统的各种接口(方法)统一成一个方法 * (对客户来说只是一个业务操作,但这操作可能是由各子系统协调共同完成)提供给客户使用,达到方便和安全的效果 *  * 比如客户端要做某个操作(传递了参数p):doSomething(Parameter p),那我们就直接定义一个doSomething(Parameter p)的Facade * 这样,客户可以按他的理解和要求直接调用;我们可以在Facade里的doSomething调用各个子系统来完成这个功能而不必暴露给客户端 * 也避免客户端和子系统打交道,达到解耦的效果 */interface IModuleA {void testA();//这个方法可以在Facade里面决定是否暴露给客户void hiddenTestA();}interface IModuleB {void testB();}interface IModuleC {void testC();}interface IFacade {void testForClient();}class ModuleA implements IModuleA {public void testA() {System.out.println("test A");}public void hiddenTestA() {System.out.println("hiddenTest A");}}class ModuleB implements IModuleB {public void testB() {System.out.println("test B");}}class ModuleC implements IModuleC {public void testC() {System.out.println("test C");}}class Facade implements IFacade {boolean show = false;public void testForClient() {IModuleA a = new ModuleA();a.testA();if (show) {a.hiddenTestA();}IModuleB b = new ModuleB();b.testB();IModuleC c = new ModuleC();c.testC();}}public class FacadePattern {public static void main(String[] args) {IFacade facade = new Facade();facade.testForClient();}}

热点排行