当前位置:首页 > 开发 > 编程语言 > 设计模式 > 正文

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

发表于: 2012-09-25   作者:bylijinnan   来源:转载   浏览:
摘要: 声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /* * 百度百科的定义: * 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();
	}

}


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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统
1. 意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这
意图   为子系统中的一组接口提供一个一致的界面,F a c a d e 模式定义了一个高层接口,这个接口
  前言:【模式总览】——————————by xingoo   模式意图   外观模式主要是为了为一组
这个模式很简单,转自 http://www.jdon.com/designpatterns/designpattern_Facade.htm Facade模式的
什么是外观模式? 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口
  模式意图   外观模式主要是为了为一组接口提供一个一致的界面。从而使得复杂的子系统与用户端
外观模式:软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。这
Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过
概述 在软件开发系统 中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号