任务:我想为许多类使用一些方法。方法相同,因此不需要为每个类实现它们。在我的情况下 - 我使用Android SDK,我发送http请求到服务器。
问题:有想法使用这样的结构:
class abstract MethodsCarrier{
public static void method1(){ /*something*/ }
public static int method2(){ /*return something*/ }
}
它有效,没有问题。但我不确定这个课程是否抽象。它是一种正确的方式吗?
答案 0 :(得分:6)
我更喜欢没有公共构造函数的final
类。这就是sun使用Math
类的方式,所以我认为这是在java中执行此操作的常规方法。
但在你的情况下,我会避免静电。静态方法适用于不访问任何外部(或全局可变)状态的无副作用函数。 http请求可以访问外部状态。
我使用这些方法定义一个接口,编写一个执行请求的实现,然后使用IoC容器将其注入到单个上下文中的消费代码中。这样你就可以模拟界面,所以你不需要在测试时发出http请求。