2021-02-16

Facade外观模式

>>返回《C#常用设计模式》

  • 1. 简介
  • 2. 示例

1. 简介

  1. 概述

    • 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
      • 比如对同一种类型但不同厂家的设备:摄像头、人脸识别设备、RFID读卡器等
  2. 模式中的角色

    1. 外观类(Facade):外观类知道哪些子系统类负责处理请求,将客户的请求代理给恰当的子系统对象。
    2. 子系统类集合(SubSystem Classes):子系统类集合实现了子系统的功能,处理外观类对象指派的任务
  3. 类图

2. 示例

namespace WindowsFormsApplication1{ class Program {  static void Main()  {   IDevice d1 = new FHCardReader();   d1.Open();   d1.Send("GpoHigh");   d1.Close();      IDevice d2 = new ImpinjCardReader();   d2.Open();   d2.Send("GpoHigh");   d2.Close();  } } //Facade public interface IDevice {  void Open();  void Close();  void Send(string msg); } //ConcreteFacadeA public class FHCardReader : IDevice {  FHReader reader = new FHReader();  FHGpo gpo = new FHGpo();  public void Open()  {   reader.Connect();  }  public void Close()  {   reader.DisConnect();  }  public void Send(string msg)  {   switch (msg)   {    case "Config": reader.ApplyConfig(); break;    case "GpoHigh": gpo.SetGpo(true); break;    case "GpoLow": gpo.SetGpo(false); break;    default:     break;   }  }  public void Send()  {   throw new NotImplementedException();  } } //ConcreteFacadeB public class ImpinjCardReader : IDevice {  ImpinjReader reader = new ImpinjReader();  public void Open()  {   reader.Connect();  }  public void Close()  {   reader.DisConnect();  }  public void Send(string msg)  {   switch (msg)   {    case "Config": reader.ApplyConfig(); break;    case "GpoHigh": reader.SetGpo(true); break;    case "GpoLow": reader.SetGpo(false); break;    default:     break;   }  } } //AnApi public class ImpinjReader {   public void Connect(){}  public void DisConnect() { }  public void ApplyConfig() { }  public void SetGpo(bool state) { }	 //。。。。一堆用不上的功能 } //B1Api public class FHReader {  public void Connect() { }  public void DisConnect() { }  public void ApplyConfig() { }	 //。。。。一堆用不上的功能 } //B2Api public class FHGpo {  public void SetGpo(bool state) { }	 //。。。。一堆用不上的功能 }}








原文转载:http://www.shaoqun.com/a/560573.html

跨境电商:https://www.ikjzd.com/

深诺互动:https://www.ikjzd.com/w/2746

飞书互动:https://www.ikjzd.com/w/1319


>>返回《C#常用设计模式》1.简介2.示例1.简介概述为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用比如对同一种类型但不同厂家的设备:摄像头、人脸识别设备、RFID读卡器等模式中的角色外观类(Facade):外观类知道哪些子系统类负责处理请求,将客户的请求代理给恰当的子系统对象。子系统类集合(SubSystemClasses):子
打折网站:打折网站
四海商舟:四海商舟
Wydr:Wydr
站内PPC广告优化,我们该从哪几点开始?:站内PPC广告优化,我们该从哪几点开始?
eBay推出Best Price Guarantee价格保障政策,卖家如何参加?:eBay推出Best Price Guarantee价格保障政策,卖家如何参加?

No comments:

Post a Comment