zoukankan      html  css  js  c++  java
  • 设计模式学习笔记——外观模式(Facade)

    1.特点:子系统的高层接口,避免两个类直接关系的第三者。

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

    3.类图:

    4.程序实现:

    /// <summary>
        /// 子系统中的一个类
        /// </summary>
        public class SubSystemOne
        {
            public void MethodeOne()
            {
                Console.WriteLine("Sub System first method.");
            }
        }
    
        /// <summary>
        /// 子系统中一个类
        /// </summary>
        public class SubSystemTwo
        {
            public void MethodTwo()
            {
                Console.WriteLine("Sub System second method.");
            }
        }
    
        /// <summary>
        /// 子系统中一个类
        /// </summary>
        public class SubSystemThree
        {
            public void MethodThree()
            {
                Console.WriteLine("Sub System third method.");
            }
        }
    
        /// <summary>
        /// 子系统中一个类
        /// </summary>
        public class SubSystemFour
        {
            public void MethodFour()
            {
                Console.WriteLine("Sub System fourth method.");
            }
        }
    
        /// <summary>
        /// 外观类
        /// </summary>
        public 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("
    Method group A----");
                one.MethodeOne();
                two.MethodTwo();
                four.MethodFour();
            }
    
            public void MethodB()
            {
                Console.WriteLine("
    Method group B----");
                two.MethodTwo();
                three.MethodThree();
            }
        }
    class Program
        {
            static void Main(string[] args)
            {
                // 由于Facade的作用,客户端可以根本不知道子系统类的存在
                Facade facade = new Facade();
                facade.MethodA();
                facade.MethodB();
    
                Console.Read();
            }
        }
    

      

  • 相关阅读:
    Verilog杂谈
    Hadoop家族学习路线图
    R语言中apply函数
    R语言数组array函数
    R语言列表list函数
    R语言多元素向量
    R语言提取字符串的一部分substring函数
    R语言改变大小写 toupper()和 tolower()函数
    R语言统计字符串的字符数ncahr函数
    R语言格式化数字和字符串format函数
  • 原文地址:https://www.cnblogs.com/ice-baili/p/4729256.html
Copyright © 2011-2022 走看看