繁体   English   中英

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

[英]Does facade class in facade pattern need to be static?

我正在阅读有关外观模式的MSDN文章。 https://msdn.microsoft.com/zh-cn/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(  ));
     }
   }

无需使外观为静态。 碰巧在这个例子中是这样。 外墙只是一种模式。 您可以轻松地拥有仍是外观的常规课程。 要求是它提供对一组更复杂的类和方法的简化访问。 无需创建3个左右的类的实例,这些实例需要进行大量设置,并且通常需要几个方法调用才能获得所需的最终输出,而Facade类为程序员提供了所有这些功能,并提供了一个简化的类引用和一个(或更少)函数调用。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM