【问题标题】:Best Utility Class Implementation [closed]最佳实用程序类实现[关闭]
【发布时间】:2011-09-27 12:40:21
【问题描述】:

我已经阅读了几个关于何时使用实用程序类或任何没有与之关联的状态的类的问题。

我的问题是,一旦您决定使用实用程序类,最好的实现是什么?一个静态类,一个带有私有构造函数和只有静态方法的普通类(类似于java的数学类),还是另一种?

我知道这可能取决于我的具体情况,但我没有,并且正在寻找更通用的指导方针或每种实施方法的优缺点。

【问题讨论】:

  • 如果我是你,我不会那样做,除非你不期待OOP

标签: oop class static utilities utility


【解决方案1】:

决定使用实用程序类后,最好的实现是什么?

正是你所提议的。创建一个私有构造函数,创建类final 并实现static 实用方法。在这种情况下,没有必要让事情变得更复杂。

当然,您必须小心不要回到命令式/过程式编程风格......只是一种意见。

【讨论】:

    【解决方案2】:

    恕我直言:

    对于像转换东西等日常小问题的实用类是一个没有构造函数的静态类是最好的实现。访问非常方便:

    Utils.ConvertDateToCake();
    

    需要构造函数的我的实用程序类被实现为单例。所以你可以像这样访问它们:

    DatabaseUtils.getInstance().DoSomething();
    

    【讨论】:

      【解决方案3】:

      实用程序类在 OOP 中是纯粹的邪恶。查看这篇博文以获得更好的解释:http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html

      简而言之,实用程序类将过程式编程带入 OOP,使您的代码更难测试、更难维护/可读且更慢 (!)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-21
        • 2011-04-03
        • 1970-01-01
        • 1970-01-01
        • 2015-07-02
        相关资源
        最近更新 更多