0

我有两个适配器类在同一个包中,我需要以下方法..

private int getAlphaValue(int backgroundTransparency) {
    int backgroundOpaquePercentage = 100 - backgroundTransparency;
    int alpha= (255 * backgroundOpaquePercentage) / 100;
    return alpha;
}
  1. 在每个类中都有此方法的副本并将它们设为私有。
  2. 将方法放在其中一个类中,并使其成为静态和受保护的,以便能够在两种方法中使用

上述两种方法中哪一种是好的做法和有效的做法?

4

5 回答 5

6

创建一个新GraphicsUtil类并添加诸如static那里的实用方法。这样的 util 方法不属于任何一个类,并且通过静态/全局上下文对应用程序全局可用更有意义。

然后所有其他图形类将其用作

int alpha = GraphicsUtil.getAlphaValue(50);
于 2013-10-09T12:49:15.863 回答
1

永远不要抄袭!这就是为什么我们现在使用Object-oriented编程来避免代码重复。

只需将此方法设为公开/受保护。

于 2013-10-09T12:47:30.470 回答
1

您应该提供有关这两个类的更多信息。查看方法,它应该变成静态的,因为它不使用实例变量。所以你不必保持重复。

于 2013-10-09T12:49:59.440 回答
0

第 1 步:创建第三个类

第2步:编写该方法

第 3 步:在您的类中使用新创建的类的对象引用调用该方法

于 2013-10-09T12:58:21.607 回答
0

第一种方法是反模式。如果您的方法中有错误,则必须修复两次。
第二种方法更好,但我会选择第三种方法:
让您的 2 个类继承自同一个基类,并在该类中使用该方法。无需对其进行保护!

于 2013-10-09T13:09:43.160 回答