Lea*_*ner 0 c# design-patterns facade
我正在通过MSDN关于外观模式的文章. https://msdn.microsoft.com/en-us/library/orm-9780596527730-01-04.aspx#Anchor_0
我无法找到为什么他们将门面变成静态类的原因?为什么他们使用静态变量来保存子系统类的实例?他们为什么使用静态方法?我想知道背后的原因.
下面是该文章的静态代码部分.完整的代码可以在文章中找到.
public static class Facade
{
static SubsystemA a = new SubsystemA( );
static SubsystemB b = new SubsystemB( );
static SubsystemC c = new SubsystemC( );
public static void Operation1( ) {
Console.WriteLine("Operation 1\n" +
a.A1( ) +
a.A2( ) +
b.B1( ));
}
public static void Operation2( ) {
Console.WriteLine("Operation 2\n" +
b.B1( ) +
c.C1( ));
}
}
Run Code Online (Sandbox Code Playgroud)
没有要求立面是静态的.它恰好发生在这个例子中.外立面只是一种模式.你可以轻松拥有一个仍然是门面的常规课程.要求是它提供了对更复杂的类和方法集的简化访问.而不是创建需要进行大量设置的3个左右的不同类的实例,并且通常需要多个方法调用来获得所需的最终输出,而facade类为程序员完成所有这些,提供简化的单个类引用和单个(或极少)函数调用.
通常,外观将使用通常需要多个步骤来检索的数据进行假设.这可以通过查看先前使用的输入参数的算法来完成,或者仅使用一些预定义的默认数据.