我正在阅读有关门面模式的 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( ));
}
}
最佳答案
没有要求外观是静态的。碰巧在这个例子中就是这样。门面只是一种模式。你可以很容易地拥有一个仍然是门面的常规类(class)。要求是它提供对一组更复杂的类和方法的简化访问。与创建 3 个左右不同类的实例不同,这些类需要进行一系列设置并且通常需要调用多个方法才能获得所需的最终输出,外观类为程序员完成了所有这些工作,提供了一个简化的单一类引用和单个(或大大减少)函数调用。
通常,外观会对通常需要多个步骤才能检索的数据进行假设。这可以通过查看以前使用的输入参数的算法来完成,或者简单地使用一些预定义的默认数据。
https://stackoverflow.com/questions/37580968/