我知道这个问题之前已被其他人回答,但答案似乎根据情况而有所不同。
我看到很多人说这个类应该被实例化,以便它可以被测试和嘲笑等......这里是我的代码,它看起来像我可以很容易地进行单元测试。
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);
或者这是不好的做法?