【问题标题】:How to really define what a "helper" is?如何真正定义什么是“帮手”?
【发布时间】:2014-01-17 15:59:26
【问题描述】:

我们怎么能真正说“来了,我刚刚开发的类是一个助手!”

这个班级会有一些特殊的标准吗?我有一个 Java 类,可以将我的 JTables 导出到 CVS 文件中。是帮手吗?我还使用一个类来验证我的表单。是帮手吗?

我经常听到这个词,但我意识到我真的不知道它是什么。

【问题讨论】:

  • 它通常与“实用程序”同义使用,但您可以简单地将任一单词添加到类名中。如果您希望我们为您分类,请发布您的特定代码。
  • 它几乎是你想要的任何东西,但通常它不会“独立”,而是会与其他一些(相对特定的)代码一起使用。
  • 在我看来,助手是帮助另一个类完成工作的类,但它们对另一个类并不重要。如果该类能够自己做一些有意义的事情,那么它就不是一个辅助类。
  • (重要的是你不要对这个术语读太多。一般的意思是一般理解的,但它受制于广泛的具体解释。(IOW,这个定义不值得争论,也不值得信任——它只是“信息性的”。)

标签: helper


【解决方案1】:

我不认为有一个“教科书”来定义助手是什么,但我认为大多数人会将助手类定义为一个本身没有意义的类 - 换句话说,一个其全部目的的类它的存在是为了“帮助”使对另一个类的一些操作更容易完成。

例如,如果您创建一个遵循“适配器”模式的类(即,它包装了一个“foo”类型的对象并让它在通常只能使用“bar”类型的地方使用),我认为适配器类也可以松散地称为“助手”类。

【讨论】:

  • 所以,一个助手将是一个充满“我不把这个有用的函数放在哪里,所以我把它放在这里”的类?
  • 我猜这实际上是一种不同的帮助类,但是是的。例如 java.lang.Math 包含一堆有用的静态方法并将它们放在一个保护伞下——有些人可能称之为助手——我倾向于称之为“工具包”或“实用程序”类——但就像我说的,这不是一个定义明确的术语。
【解决方案2】:

辅助类是仅由另一个类用来完成功能的类。因此,助手没有权利或不需要是公共的,而只是被创建为私有的。

比如Private Class B 帮助public Class A 完成一组任务,A 调用B 自己没有用。

例如(只是一个简短的记录,未经测试)

    private int newInt(String str)
    {
        test = Integer.parseInt(str);
        return test;
    }

它可以被调用:

    public int transformation(String str)
    {
        return newInt(str);
    }

这当然是一个自己的类,必须在你的主类中调用。

【讨论】:

  • 因此,在这种情况下,您必须实例化一个对象。但是如果类中充满了静态函数呢?
  • 帮助器不需要是静态的,调用它的类可以是静态的,但这取决于你的用途。如果你给我一分钟,我会编辑我的答案并给你一个简单的例子。
  • 好吧,我想我开始明白了。让我们再举一个例子:在 Java 中,我将 JTable 的数据导出到一个 CSV 文件中,其中包含一个名为 ExportToCVS 的类。此类是公共的,方法导出是静态的。我做错什么了吗?
  • 我从未使用过该框架,所以说实话我对此了解不多,但是您是说 ExportToCSV 类是静态的?如果是这样,您只能在主类中调用它,并且必须从那里使用它。你有错误吗?
  • 不不不,没有错误,问题是“我的 ExportToCSV 类是辅助类吗?”
【解决方案3】:

根据我所做的一些快速研究,以及我在处理辅助类(.Net 和 Java)时的个人经验,辅助类是一个提供与正在开发的代码实际上无关的功能的类,而是提供一些样板工作,例如强制转换、转换数据类型或执行一些常见的数学函数。

此类代码通常可以在其他项目中重用,以进一步促进正在完成的工作。

【讨论】:

    【解决方案4】:

    并非所有有帮助的东西都应该是帮助者,如果一个类没有“帮助”某些东西,它甚至都不存在。通常帮助程序类提供快捷方式,如 sql 帮助程序。我认为它们应该是特别的,并且包含一组相关的快捷功能。

    【讨论】:

      【解决方案5】:

      我认为“帮助”类是一个仅用于支持其他类的功能的类。

      在很多情况下,您需要创建一个“帮助器”类来为其添加一些方法,以便它们执行某些功能。一些例子是一个类,它具有计算一年中的假期或将某些字段或格式转换为另一个的方法。

      另一个例子是当您必须开发一个具有进度条的应用程序时。您可以创建一个“助手”类,仅用于管理进度条(设置文本、计算时间、提供估计值...)。

      如果您将应用程序划分为多个层(GUI、业务、DAO 等),有趣的是有一些“帮助程序”或“实用程序”类(或多个类)来执行您需要执行的一些任务,但它们不明确属于 GUI、业务或 DAO(数据访问对象)层。在这种情况下,您可以为每一层创建一个实用程序类,并将其放入您需要的辅助方法中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-15
        • 2016-03-29
        • 1970-01-01
        • 2017-05-06
        • 2012-03-30
        • 2011-10-10
        • 2012-08-03
        • 2012-01-30
        相关资源
        最近更新 更多