这是一个特定于Android的最佳实践/性能相关问题。(我知道这可能是一般性讨论,但我希望在考虑到Android环境的情况下缩小它)。
假设我有一个方法(检查条件并将用户重定向到各种活动)。许多类都使用此方法。
我无法决定是否在实用程序类中添加此方法,将其设置为静态并从需要它的每个活动中调用它。
或者
创建基本活动,在其中添加方法,以及需要使用此方法的任何活动,从基础活动继承。 (假设在这种特殊情况下我们可以单继承)。
想法?
EDIT 这些是我检查过的相关SO帖子。无法根据这些
做出决定If a "Utilities" class is evil, where do I put my generic code?
答案 0 :(得分: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 ... }
}