【问题标题】:Static functions in asp.netasp.net 中的静态函数
【发布时间】:2011-03-18 09:49:09
【问题描述】:

我有一个 asp.net webforms 应用程序,其中 aspx 页面从普通 .net 对象的层次结构中获取数据。

目前层次结构是完全动态的,为每个用户会话实例化和存储一次,但我想在其中一个类中使用一个函数而不创建完整的层次结构。 (我想避免重复这个类中的函数,但我需要在类的上下文之外使用它)。

作为一个说明性示例,考虑一个带有购物车类的网店类型应用程序。在购物车类中有一个应用折扣的功能,例如“买 3 件送 1 件”。我希望能够使用此折扣功能,而无需创建整个购物车,也无需在其他地方重复代码。

考虑到这是一个在 IIS7 下运行的基于 Web 的应用程序,最好的方法是什么?

我应该:

  • 把这个函数拆出来放进去 一个单独的类(仅包含 静态辅助函数)?
  • 只需制作 这个函数是静态的 目前的班级?
  • 使用其他的 避免重复的方法?

【问题讨论】:

    标签: asp.net oop webforms


    【解决方案1】:

    对我来说这听起来像是一个实用程序方法。如果是,只需创建一个 Utils 类。 看:Creating An Utilities Class?

    【讨论】:

    • 我有一个实用程序类,但在这种情况下,将这段代码放在那里并不自然。这不是一个真正的实用方法。再说一次,从外部调用特定于类的函数也感觉不对,而且我还担心一旦我在每个用户生成一次的类中有静态方法会发生什么。
    【解决方案2】:

    没有看到您的代码,我不确定最佳方法。你能发布你的代码的简化版本吗?

    创建一个包含您需要的所有其他类继承的函数的基类可能是有意义的。

    【讨论】:

    • 我没有发布任何代码,因为在这种情况下它并没有真正的帮助,我认为解决我的特定问题的正确方法也将是类似情况下的一种“最佳实践”。不过,我确实添加了一个示例来说明我的意思。
    • 我明白你的意思。然而,更多地了解对象本身将有助于给出更合适的答案。例如,如果你想在那个对象上使用的方法在逻辑上不属于那里,我会移动它。但如果它与您的所有对象有关,我可能会考虑基类。希望这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2013-01-19
    • 2010-09-06
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多