• C#设计模式:外观模式(Facade Pattern)


    一,什么是外观模式?

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

    二,我们看看代码的实现

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _10.外观模式
    {
        class Program
        {
            static void Main(string[] args)
            {
                //不存在外观类是我们的调用方法是这样的,如下代码;
                //People p = new People("中国人");
                //Event e = new Event();
                //Console.Write(p.people);
                //e.Say();
    
    
                //外观系统,跟以上代码比较,我们可以知道:外观模式提供了一个统一的接口,用来访问子系统中的一群接口。而不用实例过多,同时也降低了客户端和子系统之间的紧耦合,如People和Event的实例都不在Program中了
                Facade fa = new Facade("中国人");
                fa.WhoEvent();
    
                Facade fa1 = new Facade("美国人");
                fa1.WhoEvent();
                Console.Read();
            }
        }
        /// <summary>
        /// 外观类
        /// </summary>
        public class Facade
        {
            private Event ev { get; set; }
            private People pe { get; set; }
    
            public Facade(string people) 
            {
                ev = new Event();
                pe = new People(people);
            }
            public void WhoEvent() 
            {
                Console.Write(pe.people);
                ev.Say();
                ev.Eat();
            }
        }
         /// <summary>
         /// 相当于行为子系统
         /// </summary>
        public class Event
        {
            public void Say()
            {
                Console.Write("说话和");
            }
            public void Eat()
            {
                Console.WriteLine("吃饭");
            }
        }
        /// <summary>
        /// 相当于人子系统
        /// </summary>
        public class People
        {
            public string people { get; set; }
            public People(string p)
            {
                this.people = p;
            }
        }
    }

    三,在上面代码中,我们的代码结构是:客户端--》Facade--》n个子系统(People和Event等)

    1》在外观模式中我们,完全将子系统的实例放到外观里面,这里我们可以将提供了一个一直的界面,客户端可以直接通过外观类来调用内部子系统中方法,而避免了耦合

    四,那外观模式和适配器模式有什么区别呢?

     适配器:Adapter适配器模式是将两个不兼容的类组合在一起使用

    外观模式:为子系统中的一组接口提供一个一致的界面

    根据以上两个解释我们可以知道:

    1》适配器是针对单个对象,而外观模式是针对多个对象(子系统)的

    2》适配器是对单个对象的接口适配,从而实现现有了类可以适配当前系统的结果

    3》而外观模式则是将多个子系统的接口包装起来,实现降低耦合和共同调用,和适配器模式的意图是不一样的

  • 相关阅读:
    接口测试该怎么做
    Mac操作Github实现代码的下载、上传
    Django开发基础--操作数据库
    Django开发基础--创建项目/应用
    Python统计安卓log中Anr、Crash出现的数量
    Mac下PyCharm快捷键大全
    Selenium常用方法及函数、txt参数化
    Appium基于PO模型
    Selenium免登录、等待、unittest、PO模型
    Python接口请求及封装
  • 原文地址:https://www.cnblogs.com/May-day/p/8670360.html
Copyright © 2020-2023  润新知