• 大话设计模式-外观模式


    外观模式

    外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

    外观系统完美的体现了依赖倒转原则和迪米特法则的思想,所以是非常常用的模式之一。


    外观模式的使用时机

    首先在设计初期阶段,应该要有意识地将不同的两个层分离,层与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,使得耦合度大大降低。

    其次在开发阶段子系统往往因为不断的重构烟花而变得越来越复杂,增加外观可以提供一个简单的接口减少他们之间的依赖。

    第三,在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,为新系统开发一个外观类,来提供粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与acade对象交互,Facade与遗留代码交互所有复杂的工作。


    外观模式结构演示

    子系统类:SubSystem

    class SunSystem1{
        public void Method1() => Console.WriteLine("子系统1方法1");
    }
    class SunSystem2{
        public void Method2() => Console.WriteLine("子系统2方法2");
    }
    class SunSystem3{
        public void Method3() => Console.WriteLine("子系统3方法3");
    }
    class SunSystem4{
        public void Method4() => Console.WriteLine("子系统4方法4");
    }

    外观类:Facade

    class Facade{
        SunSystem1 one;
        SunSystem2 two;
        SunSystem3 three;
        SunSystem4 four;
        public Facade(){
            one = new SunSystem1();
            two = new SunSystem2();
            three = new SunSystem3();
            four = new SunSystem4();
        }
        public void MethodA(){
            Console.WriteLine("方法组A");
            one.Method1();
            two.Method2();
            four.Method4();
        }
        public void MethodB(){
            Console.WriteLine("方法组B");
            two.Method2();
            three.Method3();
        }
    }

    测试类:Program

    //Main方法
    Facade facade = new Facade();
    facade.MethodA();
    facade.MethodB();
    //测试结果
    方法组A
    子系统1方法1
    子系统2方法2
    子系统4方法4
    方法组B
    子系统2方法2
    子系统3方法3
  • 相关阅读:
    Win10导出查看删除已安装的证书
    Tomcat配置https访问
    SpringBoot启用https
    使用OpenSSL证书操作详解
    sed命令常用用法
    Jenkins安装第一个插件和通过离线安装包进行安装
    CentOS设置主机名称
    Jenkins使用过程中遇到的问题
    Visual Studio 最新插件
    文章去格式
  • 原文地址:https://www.cnblogs.com/errornull/p/10052975.html
Copyright © 2020-2023  润新知