博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式-外观模式
阅读量:6419 次
发布时间:2019-06-23

本文共 2189 字,大约阅读时间需要 7 分钟。

public interface IYunSuan    {        double getResult(int num1, int num2);    }    public class jia : IYunSuan    {        public double getResult(int num1, int num2)        {            return num1 + num2;        }    }    public class jian : IYunSuan    {        public double getResult(int num1, int num2)        {            return num1 - num2;        }    }    public class cheng : IYunSuan    {        public double getResult(int num1, int num2)        {            return num1 * num2;        }    }    public class chu : IYunSuan    {        public double getResult(int num1, int num2)        {            if (num2 == 0) return 0;            return num1 / num2;        }    }        //门脸类(中间层)    public class Facade    {        IYunSuan jia1;        IYunSuan jian1;        IYunSuan cheng1;        IYunSuan chu1;        public Facade()        {            jia1 = new jia();            jian1 = new jian();            cheng1 = new cheng();            chu1 = new chu();        }        //排列内部对象的方法展示顺序        public void display1(int num1,int num2)        {            var jiaresult = jia1.getResult(num1,num2);            var jianresult = jian1.getResult(num1, num2);            var chengresult = cheng1.getResult(num1, num2);            Console.WriteLine(jiaresult);            Console.WriteLine(jianresult);            Console.WriteLine(chengresult);            Console.ReadLine();        }        public void display2(int num1, int num2)        {                        var jianresult = jian1.getResult(num1, num2);            var churesult = chu1.getResult(num1, num2);                        Console.WriteLine(jianresult);            Console.WriteLine(churesult);            Console.ReadLine();        }    }        //前端        static void Main(string[] args)        {            //前端类不需要直接和运算类打交道,符合迪米特法则(最少知识原则)、依赖倒转原则(高层不依赖低层)                        Facade f = new Facade();            f.display1(100,20);            f.display2(30,10);        }

总结:外观模式应该是我们最常用的模式之一,经典的3层架构就符合这个原则,UI层和数据层没有直接通信,而是通过业务逻辑层。UI和业务逻辑、业务逻辑和数据层 之间都在加上一个接口层(门脸接口)的话扩展性和维护性会好很多。

在老系统上面加功能,最好不要轻易修改老系统代码,加个门脸接口层就好,前端和门脸接口层打交道,门脸层和老系统打交道。这样结构清晰,方便维护,也不会影响老系统。
设计模式-外观模式

转载于:https://blog.51cto.com/5591787/2115114

你可能感兴趣的文章
Systemd入门教程:命令篇(转)
查看>>
spring事务学习(转账案例)(二)
查看>>
[官方教程] [ES4封装教程]1.使用 VMware Player 创建适合封装的虚拟机
查看>>
http协议与http代理
查看>>
【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例...
查看>>
Redis+Spring缓存实例
查看>>
Storm集群安装详解
查看>>
centos7.x搭建svn server
查看>>
原码编译安装openssh6.7p1
查看>>
easyui-datetimebox设置默认时分秒00:00:00
查看>>
蚂蚁分类信息系统5.8多城市UTF8开源优化版
查看>>
在django1.2+python2.7环境中使用send_mail发送邮件
查看>>
“Metro”,移动设备视觉语言的新新人类
查看>>
PHP源代码下载(本代码供初学者使用)
查看>>
Disruptor-NET和内存栅栏
查看>>
Windows平台ipod touch/iphone等共享笔记本无线上网设置大全
查看>>
播放加密DVD
查看>>
产品设计体会(3013)项目的“敏捷沟通”实践
查看>>
RHEL6.3基本网络配置(1)ifconfig命令
查看>>
网络诊断工具之—路由追踪tracert命令
查看>>