zoukankan      html  css  js  c++  java
  • WPF之外观模式

    名词解释:

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

    必要元素:

    一个外观类和多个子系统类(外观类中注入各个子系统类)。

    上例子:

    四个系统类:

    class SubSystemOne
        {
            public void MethodOne()
            {
                Console.WriteLine("子系统方法一");
            }
        }
    
        class SubSystemTwo
        {
            public void MethodTwo()
            {
                Console.WriteLine("子系统方法二");
            }
        }
    
        class SubSystemThree
        {
            public void MethodThree()
            {
                Console.WriteLine("子系统方法三");
            }
        }
    
        class SubSystemFour
        {
            public void MethodFour()
            {
                Console.WriteLine("子系统方法四");
            }
        }

    外观类:

      class Facade
        {
            private SubSystemOne one;
            private SubSystemTwo two;
            private SubSystemThree three;
            private SubSystemFour four;
    
            public Facade()
            {
                one = new SubSystemOne();
                two = new SubSystemTwo();
                three = new SubSystemThree();
                four = new SubSystemFour();
            }
    
            public void MethodA()
            {
                Console.WriteLine("
    方法组A");
                one.MethodOne();
                two.MethodTwo();
                four.MethodFour();
            }
    
            public void MethodB()
            {
                Console.WriteLine("
    方法组B");
                two.MethodTwo();
                three.MethodThree();
                four.MethodFour();
            }
        }

    客户端调用:

            Facade facade = new Facade();
                facade.MethodA();
                facade.MethodB();

    其实外观类说白了就是把整个的执行过程给包装起来,客户端调用只需使用外观类暴露地方法即可,至于外观类是如何组织方法的无需关心。

    总结:使用外观模式可分为三个阶段,首先,在设计初期阶段,应该要有意识的将不同的两个层分离,比如三层模式。其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也都会产生很多很小的类,由于类越来越多,所以给程序使用上带来了困难,所以增加外观类Facade可以提供一个简单的接口,减少他们之间的依赖。第三,在维护一个遗留的大型系统时,可能这个系统已经很难维护和扩展,但是又很有用,此时使用外观模式也是合适的。你可以为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作。

  • 相关阅读:
    ant 软件包不存在报错
    在 Internet Explorer 中使用 Windows 窗体控件
    智能客户端
    Back to the Future with Smart Clients
    "Automation 服务器不能创建对象" 的解决方案
    Top 10 Reasons for Developers to Create Smart Clients
    Updater Application Block for .NET
    Smart Client Application Model and the .NET Framework 1.1
    Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients
    智能客户端技术总结(二)
  • 原文地址:https://www.cnblogs.com/ListenFly/p/3301986.html
Copyright © 2011-2022 走看看