外观模式中的外观类是否需要是静态的?

时间:2016-06-02 00:45:11

标签: c# design-patterns facade

我正在阅读关于外观模式的MSDN文章。 https://msdn.microsoft.com/en-us/library/orm-9780596527730-01-04.aspx#Anchor_0

我无法找到为什么他们将门面变成静态类?为什么他们使用静态变量来保存子系统类的实例?他们为什么使用静态方法?我想知道背后的原因。

以下是该文章的静态代码部分。完整的代码可以在文章中找到。

P_INPUT     VARCHAR2         IN                         
P_OUTPUT    VARCHAR2         OUT            
P_COUNT     BINARY_INTEGER   OUT            

1 个答案:

答案 0 :(得分:6)

不要求立面是静态的。它恰好发生在这个例子中。外立面只是一种模式。你可以轻松拥有一个仍然是门面的常规课程。要求是它提供了对更复杂的类和方法集的简化访问。而不是创建需要进行大量设置的3个左右的不同类的实例,并且通常需要多个方法调用来获得所需的最终输出,而facade类为程序员完成所有这些,提供简化的单个类引用和单个(或极少)函数调用。

通常情况下,外观会使用通常需要多个步骤来检索的数据进行假设。这可以通过查看以前使用的输入参数的算法来完成,或者仅使用一些预定义的默认数据。