码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式-外观模式

时间:2018-05-11 10:45:19      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:设计模式   外观模式   门脸模式   

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和业务逻辑、业务逻辑和数据层 之间都在加上一个接口层(门脸接口)的话扩展性和维护性会好很多。
在老系统上面加功能,最好不要轻易修改老系统代码,加个门脸接口层就好,前端和门脸接口层打交道,门脸层和老系统打交道。这样结构清晰,方便维护,也不会影响老系统。
技术分享图片

设计模式-外观模式

标签:设计模式   外观模式   门脸模式   

原文地址:http://blog.51cto.com/5591787/2115114

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!