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();
            }
        }
    

      

  • 相关阅读:
    4.比赛F
    4.M
    4.H
    4.J
    4.G
    4.D
    4.C
    UVA 215 Spreadsheet Calculator (模拟)
    POJ 3469 Dual Core CPU(最小割模型的建立)
    POJ 3281 Dining(网络流最大匹配)
  • 原文地址:https://www.cnblogs.com/ice-baili/p/4729256.html
Copyright © 2011-2022 走看看