zoukankan      html  css  js  c++  java
  • 设计模式之—外观模式<Facade Pattern>

     外观模式(门面模式):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。它体现了依赖倒转和多米特法则

    子系统一(SubSystemOne)

    namespace Facade_Pattern.CLASS
    {
        class SubSystemOne
        {
            public void MethodA()
            {
                Console.WriteLine("子系统一实现方法A");
            }
        }
    }
    View Code

    子系统二(SubSystemTwo)

    namespace Facade_Pattern.CLASS
    {
        class SubSystemTwo
        {
            public void MethodB()
            {
                Console.WriteLine("子系统二实现方法B");
            }
        }
    }
    View Code

    子系统三(SubSystemThree)

    namespace Facade_Pattern.CLASS
    {
        class SubSystemThree
        {
            public void MethodC()
            {
                Console.WriteLine("子系统三实现功能C");
            }
        }
    }
    View Code

    外观类(Facade)

    namespace Facade_Pattern.CLASS
    {
        class Facade
        {
            SubSystemOne A;
            SubSystemThree C;
            SubSystemTwo B;
            public Facade()
            {
                A = new SubSystemOne();
                B = new SubSystemTwo();
                C = new SubSystemThree();
            }
            public void MethodA()
            {
                A.MethodA();
                B.MethodB();
            }
    
            public void MethodB()
            {
                B.MethodB();
                C.MethodC();
            }
        }
    }
    View Code

    测试类(TestMain):

    namespace Facade_Pattern
    {
        class TestMain
        {
            static void Main(string[] args)
            {
                Facade facade = new Facade();
                Console.WriteLine("方法A:");
                facade.MethodA();
                Console.WriteLine("方法B:");
                facade.MethodB();
                Console.ReadLine();
            }
        }
    }
    View Code

    测试结果:

    要么忍,要么狠,要么滚!
  • 相关阅读:
    basic-linux
    巧用border属性
    git常用操作笔记
    如何删除github里的项目
    常用css3属性的ie兼容查看
    新建pc端页面的模板
    HTML5 Shiv--解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
    进程和线程
    C++对象模型---第 4 章 Function语意学
    C++对象模型---第 3 章 Data语意学
  • 原文地址:https://www.cnblogs.com/zxd543/p/3246531.html
Copyright © 2011-2022 走看看