门面(Facade)模式
2009-07-18 15:52
197 查看
门面(Facade)模式
医院的例子
用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。
首先病人必须先挂号,然后门诊。如果医生要求化验,病人必须首先划价,然后缴款,才能到化验部门做化验。化验后,再回到门诊室。
解决这种不便的方法便是引进门面模式。可以设置一个接待员的位置,由接待员负责代为挂号、划价、缴费、取药等。这个接待员就是门面模式的体现,病人只接触接待员,由接待员负责与医院的各个部门打交道。
什么是门面模式
门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
就如同医院的接待员一样,门面模式的门面类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与门面对象打交道,而不需要与子系统内部的很多对象打交道。
门面模式是对象的结构模式。门面模式没有一个一般化的类图描述,下图演示了一个门面模式的示意性对象图:
using System;
public class Camera
public class Light
public class Sensor
public class Alarm
public class Client
using System;
public class Camera
public class Light
public class Sensor
public class Alarm
public class SecurityFacade
public class Client
private static SecurityFacade security;
public static void Main( string[] args )
security = new SecurityFacade();
security.Activate();
Console.WriteLine("\n--------------------\n");
security.Deactivate();
}
}
一、 门面(Facade)模式
外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。医院的例子
用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。
首先病人必须先挂号,然后门诊。如果医生要求化验,病人必须首先划价,然后缴款,才能到化验部门做化验。化验后,再回到门诊室。
解决这种不便的方法便是引进门面模式。可以设置一个接待员的位置,由接待员负责代为挂号、划价、缴费、取药等。这个接待员就是门面模式的体现,病人只接触接待员,由接待员负责与医院的各个部门打交道。
什么是门面模式
门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
就如同医院的接待员一样,门面模式的门面类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与门面对象打交道,而不需要与子系统内部的很多对象打交道。
二、 门面模式的结构
门面模式是对象的结构模式。门面模式没有一个一般化的类图描述,下图演示了一个门面模式的示意性对象图:using System;
public class Camera
public class Light
public class Sensor
public class Alarm
public class Client
using System;
public class Camera
public class Light
public class Sensor
public class Alarm
public class SecurityFacade
public class Client
private static SecurityFacade security;
public static void Main( string[] args )
security = new SecurityFacade();
security.Activate();
Console.WriteLine("\n--------------------\n");
security.Deactivate();
}
}
相关文章推荐
- 门面模式Facade
- JAVA设计模式——第 7 章 门面模式【Facade Pattern】(转)
- JAVA设计模式十八:--Facade(外观模式或门面模式)
- 开发设计模式(九)门面模式(Facade Pattern)
- 设计模式读书笔记之外观模式/门面模式(Facade)
- 【门面设计模式】的故事来源(Facade Pattern)
- 门面(Facade)模式
- 设计模式C++学习笔记之六(Facade门面模式)
- 侃门面模式(Facade)
- 门面(Facade)模式
- 门面模式Facade
- 门面模式(Facade Pattern)
- 【设计模式】之 Facade 门面模式
- 门面(Facade)模式简介
- java设计模式-门面模式Facade
- 设计模式C++学习笔记之六(Facade门面模式)
- 设计模式12:Facade Pattern (门面模式)
- java 设计模式-结构模式之门面模式(facade)
- 设计模式-门面模式-facade-python
- 门面模式facade