zoukankan      html  css  js  c++  java
  • C#-设计模式-外观模式

    1.定义

    当想访问一堆子接口的时候,为了防止客户端和子接口的耦合,我们将子接口上层重新建立一个外观层,让外观层和客户端发生关系。

    这样就避免了修改子接口的同时,再去修改客户端,因此外观模式有时候又被称作门面模式。

    2.代码实现

    public class UserDAL
    {
        public bool CheckUser(string username, string password)
        {
            return true;
        }
    }
    
    public class LogDAL
    {
        public void AddLog(string info) { }
    }
    
    public class UserService
    {
        UserDAL userDAL = new UserDAL();
        LogDAL logDAL = new LogDAL();
    
        public void CheckUser(string username, string password)
        {
            var result = userDAL.CheckUser(username, password);
            if (result)
            {
                logDAL.AddLog(username + "登录成功");
            }
        }
    }

    本来是两个子接口LogDAL和UserDAL,因为要将接口和客户端隔离,因此产生了UserService类这么门面类

    调用的时候,只需要:

    public class Client
    {
        UserService userService = new UserService();
    
        public void Main()
        {
            userService.CheckUser("admin", "123123");
        }
    }

    这个代码是不是十分熟悉,对的,MVC框架的三层结构,为了避免层与层之间相互污染,就采取的是外观模式的设计手法。

    这样不同层的逻辑只会应该该层的代码,不会对其他层次产生影响,这样就降低了代码的耦合度,后期业务增加和修改的时候,就会更方便。

    3.特点

    优点:分层次的代码设计方式,降低了代码的耦合度,后期功能扩展和功能修改的时候,可以将对其余代码的影响降低;

    缺点:很明显,这样写代码是增加代码的冗余的,对执行效率肯定是有影响的。而且需求更改的时候违背了开闭原则。

  • 相关阅读:
    hdu2846 Repository
    Ajax:js自执行函数、jsonp、cros
    python读写Excel文件--使用xlrd模块读取,xlwt模块写入
    CentOS上快速安装saltstack
    Django_Form表单补充
    前端基础之Bootstrap介绍
    前端基础之jquery练习
    前端基础之Http协议
    Django_随机验证码
    dpkg --add-architecture i386 && apt-get update && > apt-get install wine32
  • 原文地址:https://www.cnblogs.com/gamov/p/10535812.html
Copyright © 2011-2022 走看看