门面模式(Facade Pattern)

    门面模式是对象的结构模式。外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式。
    门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
    在门面模式中,通常只需要一个门面类,并且此门面类只有一个实例,换言之它是一个单例类。当然这并不意味着在整个系统里只有有一个门面类,而仅仅是说对每一个子系统只有一个门面类。或者说,如果一个系统有好几个子系统的话,每一个子系统有一个门面类,整个系统可以有数个门面类。

门面模式的结构:
门面模式(Facade <wbr>Pattern)


示例:
1、结构对象图

门面模式(Facade <wbr>Pattern)
 

2、java代码
System类:
 package facade.system;
public class Alarm {
 public void activate(){
  System.out.println("Alarm activate。。。。。。");
 }
 public void deactivate(){
  System.out.println("Alarm deactivate。。。。。。");
 }
}
 
 
package facade.system;
public class Camera {
 public void turnOn(){
  System.out.println("Camera turnOn。。。。。。");
 }
 public void turnOff(){
  System.out.println("Camera turnOff。。。。。。");
 }
}
 
 
package facade.system;
public class Light {
 public void turnOn(){
  System.out.println("Light turnOn。。。。。。");
 }
 public void turnOff(){
  System.out.println("Light turnOff。。。。。。");
 }
}
 
 
package facade.system;
public class Sensor {
 public void turnOn(){
  System.out.println("Sensor turnOn。。。。。。");
 }
 public void turnOff(){
  System.out.println("Sensor turnOff。。。。。。");
 }
}
 
 
SecurityFacadeL类:
package facade;
import facade.system.Alarm;
import facade.system.Camera;
import facade.system.Light;
import facade.system.Sensor;
public class SecurityFacade {
 private Camera camera1 = new Camera();
 private Camera camera2 = new Camera();
 private Light light1 = new Light();
 private Light light2 = new Light();
 private Light light3 = new Light();
 private Sensor sensor = new Sensor();
 private Alarm alarm = new Alarm();
 public void activate(){
  camera1.turnOn();
  camera2.turnOn();
  light1.turnOn();
  light2.turnOn();
  light3.turnOn();
  sensor.turnOn();
  alarm.activate();
  
 }
 public void deactivate(){
  camera1.turnOff();
  camera2.turnOff();
  light1.turnOff();
  light2.turnOff();
  light3.turnOff();
  sensor.turnOff();
  alarm.deactivate();
 }
}
 
Client类:
package facade;
public class Client {
 private static SecurityFacade facade = new SecurityFacade();
 public static void main(String args[]){
  facade.activate();
  facade.deactivate();
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值