【问题标题】:Which is best place to write common codes Static Helper class or Base Class?哪个是编写通用代码静态助手类或基类的最佳位置?
【发布时间】:2012-01-23 14:20:35
【问题描述】:

我必须编写大量代码,这些代码将用于三个 asp.net 页面。

我想知道关键点,以便我可以决定是创建静态助手类,还是创建通用代码的基类。

我同意创建单个辅助类与创建多个辅助类必须是一项谨慎的工作,具体取决于性能等各种因素,但问题仍然存在,您可以认为我是一个可以创建完美的聪明编码器辅助类的数量。

我想我将只使用这三个 asp.net 页面中的这些代码。

感谢所有回答的朋友,但我需要更多输入,请您发送更多具体点。

谢谢。

【问题讨论】:

  • 对我来说听起来像是上帝的反对 (en.wikipedia.org/wiki/God_object)。我希望您不建议创建一个名为 Helper 的单个静态类并将所有这些“通用”功能放入其中。
  • 这一切都取决于代码的作用以及页面之间的关系。您可以使用辅助类(静态或非静态)或继承,甚至可能是其他东西。要获得正确的答案,您需要提供更多信息。
  • 我不会创建单个静态助手类或上帝对象

标签: c# asp.net static base-class


【解决方案1】:

如果是所有三个 ASP.NET 页面而不是其他代码共享的代码,那么基类是个好主意。

代码不会暴露给“外部世界”(通过使方法受到保护),并且您定义了应该在其中使用方法的上下文。它们只能从定义槽继承的 ASPX 页面调用,它是一种方法有意义的特定基本类型。只需传递正确的参数,就可以在代码中的任何位置调用 Helper 方法,即使这在概念上是无效的。

如果是要从不同位置调用的代码(例如 ValidateEmail 函数),那么静态帮助程序类可能会有所帮助。

但是,如果您选择辅助类,您仍然需要决定要创建多少个辅助类。从维护的角度来看,将所有辅助函数转储到一个类中可能不是一个好主意。

【讨论】:

  • 如果页面看起来也很相似,MasterPage 可能会很好地工作。无论如何,当您有一个具有“层”功能的页面时,这可能会变得很棘手——页面 A 需要是 WhoozitPage,页面 B 需要是 DingleHopperPage,而页面 C 确实需要两者的功能,除了你不能有多重继承。
  • 由于多重继承确实不是一种选择,因此您应该将其移至单独的帮助程序类,因为“并非所有三个 ASP.NET 都共享代码”。其中只有两个相交
  • 哦,我想我仍然不清楚这一点,假设我不会从除三个 asp.net 页面之外的任何其他页面使用它们,基类与辅助类对我来说仍然相同.
  • 然后它会选择一个如上所述的基类。
  • 你能详细解释一下为什么在这种情况下选择基类吗?
【解决方案2】:

创建一个基页并从中继承,然后将您的辅助方法和属性放在基页上。

【讨论】:

  • 如果您更喜欢在基本页面上编写代码,那么为什么要将这些代码移动到帮助程序并从基本页面调用帮助程序?既然代码不会再被使用,那为什么不只写在基础页面上呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多