3

这更像是一个特定于 Android 的最佳实践/性能相关问题。(我知道这可能是一个笼统的讨论,但考虑到 Android 环境,我希望将其范围缩小)。

假设我有一个方法(检查条件并将用户重定向到各种活动)。很多类都使用这种方法。

我无法决定是否在实用程序类中添加此方法,使其成为静态并从需要它的每个活动中调用它。

或者

创建一个基础活动,在其中添加方法,任何需要使用此方法的活动都从基础活动继承。(假设在这种特殊情况下我们可以使用单继承)。

想法?

编辑这些是我检查过的与此相关的相关 SO 帖子。无法根据这些做出决定

实用程序类是邪恶的?

如果“实用程序”类是邪恶的,我应该把我的通用代码放在哪里?

4

1 回答 1

1

还可以在需要时将类注入构造函数中。当您使用这种方法时,您可以轻松地在接口后面模拟这个类,并且可以使用模拟创建测试。

例如一些伪代码:

你的Utility班级:

public class Utility implements IUtility {
    @Override
    public void add() { ... }

    @Override
    public void remove() { ... }
}

您的Utility使用类:

public class UtilityUsingClass {
    private IUtility utility;
    public UtilityUsingClass(IUtility utility) {
        this.utility = utility;
    }

    public void myMethod() {
        // Use Utility class
        utility.add();
        ...
    }
}

在测试中它可能看起来像这样:

@Test
public void testMyMethod() {
    UtilityUsingClass testClass = new UtilityUsingClass(new UtilityMock());
    testClass.myMethod();

    // assert stuff
}

UtilityMock: _

public class UtilityMock implements IUtility {
    @Override
    public void add() { // Implements mock logic ... }

    @Override
    public void remove() { // Implements mock logic ... }
}
于 2016-06-24T07:57:05.187 回答