在Java中,helper方法应该是静态的还是实例的?

时间:2015-11-04 16:54:14

标签: java helper default-method

我知道这个问题之前已被其他人回答,但答案似乎根据情况而有所不同。

我看到很多人说这个类应该被实例化,以便它可以被测试和嘲笑等......这里是我的代码,它看起来像我可以很容易地进行单元测试。

WebsiteLogin.java 是一个扩展Website.java并包含一个名为login()的void方法的接口,它需要三个字符串,Username,Password和Url。

AccountLogin.java 是一个扩展Account的接口,包含Username,Password和Url的getter方法,以及一个采用布尔值的setEnabled()方法。

在一个名为Login.java的单独类中,我有一个方法login(),它使用WebsiteLogin和AccountLogin。该类只有一种方法。

这是代码

static void login(AccountLoginInformation account, LoginToWebsite website){
        website.login(account.getUsername(), account.getPassord(), account.getUrl());
        account.setEnabled(true);
}

所以它登录然后将帐户设置为启用。现在虽然这个方法是静态的,但我仍然可以通过向它发送一个存根的LoginToWebsite来测试它。我在这里纠正吗?那么不使用静态方法还有其他原因吗?

使用Java 8和接口中的默认方法的另一个问题是,我可以使用以下内容创建名为Login.java的接口;

default void login(AccountLoginInformation account, LoginToWebsite website){
        website.login(account.getUsername(), account.getPassord(), account.getUrl());
        account.setEnabled(true);
}

然后在另一个类中实现Login.java类并只调用

login(account, website);

或者这是不好的做法?

0 个答案:

没有答案