【问题标题】:Where to put helper methods?在哪里放置辅助方法?
【发布时间】:2015-09-01 03:35:25
【问题描述】:

我有一种方法可以使给定的十六进制颜色和百分比变暗。目前,我唯一使用此方法的地方是我的 Activity 类之一(我以后可能会或可能不会在其他类中使用它)。

public static int darkenColor(int color, int percent) { ... }

但是,我应该把这个方法放在哪里?我是否应该创建一个名为 Helpers 的新类,其中包含我在整个应用程序中只能使用一次的所有这些方法?

【问题讨论】:

  • 对于可以在其他地方重用的静态方法,我倾向于将它们分组到相关的 Utils 类中,例如 BitmapUtilsImageUtils 等,而不是将一个类作为所有人的垃圾场其中。 Helper 通常意味着该类将具有某种形式的实例,因此我会避免在名称中使用它。
  • 重用 sn-ps 是个好主意。主要是因为您不必重新编写代码。然而,公共静态方法通常不是一个好主意。原因是静态方法打破了 OOP 语言的基本规则,称为“封装”。此外,静态方法或 member_variables 被视为“应用程序级变量”。公共和静态组合不仅“尖叫”“糟糕的设计”,而且它们也更难清理和跟踪。尽量使用私有非静态。

标签: android android-fragments android-activity


【解决方案1】:

这只是一个选择问题。您可以拥有一组实用程序类,并将这些辅助方法放在这些类中。但是,此方法不适用于您的某个活动,如果您看不到它会在不久的将来在其他地方重用,请将其作为私有方法放入您的活动中。我这样说是因为您不想使代码过于复杂,并且通过这种方式,另一个开发人员可以轻松地跟踪执行流程。

但有时如果您觉得这段代码正在被重用,请将其放入一个具有逻辑意义的实用程序类。当代码库很大时,你没有任何选择遵循一个可靠的标准化来放置你的代码,这就是为什么会有分层架构之类的东西。

【讨论】: