zoukankan      html  css  js  c++  java
  • C# 设计模式-外观模式

    一.介绍  

      外观模式(Facade Pattern),也叫门面模式。属于结构型模式。为子系统中的一系列接口提供一个一致的界面,该模式提供了一个高层接口,这个接口使得这一子系统更加容易使用。

    二.实现

      外观模式是通过定义一个外观类将子类包装起来,来简化客户端所调用的方法。

    /// <summary>
    /// 外观类
    /// </summary>
    public class Facade
    {
    
        SubSystemA a = new SubSystemA();
        SubSystemB b = new SubSystemB();
        SubSystemC c = new SubSystemC();
    
        public void MethodA()
        {
            a.MethodA();
            b.MethodB();
        }
    
        public void MethodB()
        {
            b.MethodB();
            c.MethodC();
            a.MethodA();
        }
    }
    
    public class SubSystemA
    {
        public void MethodA()
        {
            Console.WriteLine("SubSystemA.MethodA");
        }
    }
    
    public class SubSystemB
    {
        public void MethodB()
        {
            Console.WriteLine("SubSystemB.MethodB");
        }
    }
    
    public class SubSystemC
    {
        public void MethodC()
        {
            Console.WriteLine("SubSystemC.MethodC");
        }
    }
    
    //调用
    public static void Main(string[] args)
    {
        Facade facade = new Facade();
        facade.MethodA();
        facade.MethodB();
    }

      使用了外观模式后,客户端只需要依赖外观类,使得客户端和子系统的依赖解耦。其实我们在开发过程中,都会使用过外观模式,比如三层架构就是其中一个例子。

    三.总结

      优点:

      1.外观模式对客户端屏蔽了子系统组件,从而简化了接口,减少了客户处理的对象数目并使得子系统的使用更加简单。

      2.外观模式实现了客户端和子系统之间的松耦合关系,而子系统内部的组件是紧耦合的。松耦合使得子系统的组件变化不会影响到客户端。

      缺点:

      1.如果新增新的子系统可能需要修改外观类,这就不符合开闭原则,不过这也是没法避免的。

  • 相关阅读:
    从0开始用Hexo框架搭建个人博客(无坑版)
    Appium常用操作之「Toast提示信息获取」
    Appium常用操作之「微信滑屏、触屏操作」
    Appium常用操作之「元素定位、swipe 滑屏操作」
    Python+Appium运行简单的demo,你需要理解Appium运行原理!
    磁盘管理综合测试题
    自总结笔记01(第一章---第七章)
    linux里配置静态ip
    chapter06
    chapter05
  • 原文地址:https://www.cnblogs.com/shadoll/p/14296487.html
Copyright © 2011-2022 走看看