设计模式-外观模式-创新互联
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和业务逻辑、业务逻辑和数据层 之间都在加上一个接口层(门脸接口)的话扩展性和维护性会好很多。
在老系统上面加功能,最好不要轻易修改老系统代码,加个门脸接口层就好,前端和门脸接口层打交道,门脸层和老系统打交道。这样结构清晰,方便维护,也不会影响老系统。
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
网站名称:设计模式-外观模式-创新互联
本文来源:http://ybzwz.com/article/ccjshc.html