zoukankan      html  css  js  c++  java
  • 【原创】设计模式面对面之外观模式

    外观模式

    类图:

    常用的实现方式:

    外观部件

    public class FacadePartA {
    
            public FacadePartA(){
    
            }
    
            public string Write(){
    
                return "今天天气真不好!";
            }
    
        }//end FacadePartA
    View Code
        public class FacadePartB {
    
            public FacadePartB(){
    
            }
    
            /// 
            /// <param name="message"></param>
            public void Read(string message){
                Console.WriteLine(message);
            }
    
        }//end FacadePartB
    View Code

    外观

    public class Facade {
    
            private readonly FacadePartA _facadePartA;
            private readonly FacadePartB _facadePartB;
    
            public Facade(){
                _facadePartA=new FacadePartA();
                _facadePartB=new FacadePartB();
            }
    
            public void Show()
            {
                var message = _facadePartA.Write();
                _facadePartB.Read(message);
            }
    
        }//end Facade
    View Code

    调用

     static void Main(string[] args)
            {
              
                var facade = new Facade.Facade();
    
                facade.Show();
    
                Console.ReadLine();
    
            }
    View Code

     使用场景:

    外观模式主要用来根据不同的客户端,提供接口,方便客户调用和维护。常包装不同的对象或者细粒度服务,减少对象与对象之间的数据依赖,一般用在UI(Html或页面)层的次层。

    优点

    1.根据不同的客户端定制接口,比如移动,PC,微信,同样的服务根据需要可以提供不同的数据结构。

    2.隐藏了部件功能实现的细节,客户端不用关心具体实现,具体实现由不同的部件去完成,然后包装就好。

    缺点

    1.外观类违背了设计6大原则,有利有弊

    当然外观类可以根据需求去做抽象,增加其稳定性。

  • 相关阅读:
    单表查询和多表连接查询哪个效率更快
    高并发和秒杀系统设计
    微服务框架学习三:服务通信框架介绍
    微服务框架学习一:架构介绍
    微服务框架学习二:Http调用
    支付相关的学习资源
    service mesh学习规划
    智齿客服网页端接入文档V2.3
    VUE请求本地数据的配置json-server
    webpack学习
  • 原文地址:https://www.cnblogs.com/dujq/p/7831005.html
Copyright © 2011-2022 走看看