外观模式定义:
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
使用阶段:
1.在设计初期阶段
2.开发阶段
3.接受一个新的(或旧的)大型系统
在这些阶段的时期都是解决了内部子系统的复杂联系,让整个系统有一个“前台”就行。

在生活中的实例就是做饭吃,如果我们在家吃饭就需要买菜、洗菜、切菜、炒菜。但如果我们去饭店吃饭,我们只需要和服务员说我们吃什么就行了,服务员去后厨报菜名就行了,我们根本不需要去知道这个菜怎么做的就行,后厨只知道这是服务员要的菜,这就节省了很多的事情。
缺点
就是这个外观模式不符合开闭原则,如果出现新的子系统就需要修改外观层的代码
//外观类
class Facade
{
SubSystemOne one;
SubSystemTwo two;
SubSystemThree three;
SubSystemFour four;
public Facade()
{
one = new SubSystemOne();
two = new SubSystemTwo();
three = new SubSystemThree();
four = new SubSystemFour();
}
public void MethodA()
{
Console.WriteLine(" \n方法组A()----");
one.MethodOne();
two.MethodTwo();
four.MethodFour();
}
public void MethodB()
{
Console.WriteLine(" \n方法组B()----");
two.MethodTwo();
three.MethodThree();
}
}
其余几个子系统和这个一样。
//子系统
class SubSystemFour
{
public void MethodFour()
{
Console.WriteLine(" 子系统方法四");
}
}
//客户端
static void Main(string[] args)
{
Facade facade = new Facade();
facade.MethodA();
facade.MethodB();
Console.Read();
}

在我们平常的一些代码程序在编写时也有用到。外观模式又称为门面模式,它是一种对象结构型模式。外观模式是迪米特法则的一种具体实现,通过引入一个新的外观角色可以降低原有系统的复杂度,同时降低客户类与子系统的耦合度。
浙公网安备 33010602011771号