Java设计模式(十一):外观模式(门面模式)Facade

原创 2016年06月01日 18:00:52

1.概念

为子系统中的一组接口提供一个统一接口。Facade模式定义了一个高层接口,这个接口使得这子系统更容易使用。


2.UML



3.代码

下面是一个具体案例的代码:

package com.iter.devbox.facade;

/**
 * 子系统角色中的类
 * @author Shearer
 *
 */
public class ModuleA {
	public void testA() {
		System.out.println("调用ModuleA中的testA方法");
	}
}


package com.iter.devbox.facade;

/**
 * 子系统角色中的类
 * @author Shearer
 *
 */
public class ModuleB {
	public void testB() {
		System.out.println("调用ModuleB中的testB方法");
	}
}


package com.iter.devbox.facade;

/**
 * 子系统角色中的类
 * @author Shearer
 *
 */
public class ModuleC {
	public void testC() {
		System.out.println("调用ModuleC中的testC方法");
	}
}


package com.iter.devbox.facade;

/**
 * 门面角色类
 * @author Shearer
 *
 */
public class Facade {  
    //示意方法,满足客户端需要的功能  
    public void test(){  
        ModuleA a = new ModuleA();  
        a.testA();  
        ModuleB b = new ModuleB();  
        b.testB();  
        ModuleC c = new ModuleC();  
        c.testC();  
    }  
}  


package com.iter.devbox.facade;

/**
 * 客户端角色类
 * @author Shearer
 *
 */
public class Client {
	public static void main(String[] args) {
		Facade facade = new Facade();
		facade.test();
	}
}


4.应用场景

1)为一个复杂子系统提供一个简单接口。

2)提高子系统的独立性。

3)在层次化结构中,可以使用Facade模式定义系统中每一层的入口。


版权声明:本文为博主原创文章,未经博主允许不得转载。

JAVA设计模式之门面模式(外观模式)

医院的例子   现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门...
  • jason0539
  • jason0539
  • 2014年04月02日 07:16
  • 26001

Java设计模式(四) Facade(门面)模式及Tomcat引申

基本概念Facade的概念为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。 我们需要以一种比原有方式更简单直接的办法与系统交互,对于讨论的复杂系统我...
  • qq_24451605
  • qq_24451605
  • 2016年04月25日 14:38
  • 4647

设计模式(七)门面模式(Facade Pattern 外观模式)

一、模式定义门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更...
  • xingjiarong
  • xingjiarong
  • 2015年11月28日 16:14
  • 7711

Unity3d之设计模式(四)外观模式

一、定义 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 解释:简单来说,客户端需要调用一个特别复杂的子系统中的多个接口,如果直接...
  • qq563129582
  • qq563129582
  • 2016年12月15日 18:24
  • 696

JAVA设计模式十九--Facade(外观模式)

Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。 Facade模式概述         实际应用中,我们在对付一些老旧...
  • hfmbook
  • hfmbook
  • 2012年06月29日 15:25
  • 18492

浅谈JAVA设计模式之——外观模式(Facade)

一、概述 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 二、适用性 1.当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断...
  • l1028386804
  • l1028386804
  • 2015年05月07日 23:32
  • 3376

设计模式(结构型)之外观模式(Facade Pattern)

一个客户类需要和多个业务类交互,而这些业务类经常会作为整体出现,由于涉及到的类比较多,导致使用时代码较为复杂。外观模式通过引入一个新的外观类(Facade)来实现该功能,外观类为多个业务类的调用提供统...
  • yanbober
  • yanbober
  • 2015年05月04日 09:29
  • 2521

Java 设计模式 之 facade(外观)设计模式

Facade模式要求一个子系统的外部与其内部的通信通过一个统一的Facade对象进行。Facade模式提供一个高层次的接口,使得子系统更易于使用。       当子系统经过不断的演变,变得异常复杂时,...
  • u010349169
  • u010349169
  • 2014年01月28日 17:24
  • 2926

C# 设计模式--外观模式(Facade)

     一个良好的面向对象应用程序应该是一个最小的类,这个类能够把其他可重用类的行为有效的组织起来。对一个子系统的类进行重构,直到每个类都有一个进行良好定义功能目标,所以代码易于维护。外观模式(Fa...
  • scucj
  • scucj
  • 2006年11月09日 00:22
  • 3217

Tomcat中的设计模式--外观模式(门店模式)

门面设计模式 门面设计模式在 Tomcat 中有多处使用,在 Request 和 Response 对象封装中、Standard Wrapper 到 ServletConfig 封装中、Appl...
  • ZuoAnYinXiang
  • ZuoAnYinXiang
  • 2016年01月03日 20:52
  • 739
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java设计模式(十一):外观模式(门面模式)Facade
举报原因:
原因补充:

(最多只允许输入30个字)