8、门面模式(Facade)
- 门面角色(Facade): 供客户端调用,分派客户端的请求到子系统中去;此角色知晓相关的子系统的功能和责任;
- 子系统角色(SubSystem): 可以有一个或多个子系统;每个子系统都是一个类的集合
什么是门面角色?
门面模式要求一个子系统的外部和内部的通信必须通过一个统一的门面(Facade)进行。 门面模式提供一个高层次的接口,使得子系统易于使用。
在什么情况下使用门面模式?
- 为一个复杂子系统提供一个统一的接口
- 子系统的独立性
- 层次化结构
实例代码:
public class Facade
{
public Facade()
{
}
public void ProcessTitle()
{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
line.doubleLine();
sig.sigRectangle();
str.StringOut("something here");
}
public void ProcessSubTitle()
{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
line.singleLine();
sig.sigCircle();
str.StringOut("sub title 1.1");
}
public void ProcessItem()
{
StringOutput str = new StringOutput();
LineOutput line = new LineOutput();
SignalOutput sig = new SignalOutput();
sig.sigStar();
str.StringOut("process item");
}
}
public class LineOutput
{
public LineOutput()
{
}
public void singleLine()
{
System.out.println("------------------------------");
}
public void doubleLine()
{
System.out.println("==============================");
}
}
public class SignalOutput
{
public SignalOutput()
{
}
public void sigStar()
{
System.out.print("sigStar");
}
public void sigRectangle()
{
System.out.print("sigRect");
}
public void sigCircle()
{
System.out.print("?");
}
}
public class StringOutput
{
public StringOutput()
{
}
public void StringOut(String str)
{
System.out.println(str);
}
}
public class FacadeSample
{
static public void main(String args[])
{
Facade facade = new Facade();
facade.ProcessTitle();
facade.ProcessSubTitle();
facade.ProcessItem();
facade.ProcessItem();
facade.ProcessItem();
}
}
分享到:
相关推荐
设计模式之门面模式(Facade模式),介绍门面模式,实际例子分析,代码讲解等
设计模式C++学习之门面模式(Facade)
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层次的接口,使得子系统更加容易使用【GOF95】 外部与子系统的通信是通过一个门面(Facade)对象进行。 二、门面模式结构图 三、门面模式中主要角色 ...
eclipse工程文件 包含代码 有助理解 门面(Facade)模式 <br>外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 <br>医院的例子 <br>用一个例子进行说明,如果把医院...
1、门面模式(Facade) 用意:提供一个统一的接口去访问多个子系统的多个不同的接口,来控制访问的粒度。
7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式...
C++设计模式课件14_Facade_门面模式.pdf
门面模式为子系统提供一个统一的高层接口,供外部客户使用。 门面模式提供了一个更高层次的接口,使得子系统更容易使用。
NULL 博文链接:https://lym6520.iteye.com/blog/707060
java设计模式门面模式java设计模式门面模式
什么是门面模式(Facade) 外部与一个子系统的通信必须通过一个统一的门面对象进行。这就是门面模式。 门面模式的结构 涉及两个角色: 门面角色:客户端可以调用这个角色的方法。此角色知道子系统的功能和责任。在...
开发中常见一种模式之一,在简化其开发步骤,完成同样的工作开发中常见一种模式之一,在简化其开发步骤,完成同样的工作隐藏>>
模式定义:外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。...
Ajax中使用Facade外观(门面)模式的Eclipse版本的Demo.
我们考察一个保安系统的例子,以说明门面模式的功效。一个保安系统由两个录像机、三个电灯、一个遥感器和一个警报器组成。保安系统的操作人员需要经常将这些仪器启动和关闭。
主要介绍了C#设计模式编程中外观模式Facade Pattern的应用,外观模式中分为门面(Facade)和子系统(subsystem)两个角色来进行实现,需要的朋友可以参考下
1) 家庭影院中有CD机,DVD机,收音机Turner,录影机Recorder,功放Amplifier,升降屏幕Screen等,请为家庭影院系统设计一个请设计一个门面,通过它可以方便的操作其他设备放电影等。 2) 编写一个测试主类,测试你的...
门面模式[FACADE PATTERN] 适配器模式[ADAPTER PATTERN] 模板方法模式[TEMPLATE METHOD PATTERN] 建造者模式[BUILDER PATTERN] 策略模式 代理模式 单例模式 多例模式 工厂方法模式 抽象工厂模式 门面模式 适配器...
23种模式(Pattern) 1、创建形模式: 1)、单用型:Singleton 2)、工厂方法型:Factory Method...3)、门面模式:Facade 4)、装饰模式:Decorator 3、行为型模式 1)、策略模式:Strategy 2)、观察者模式:Observer