为了减少一个类的 NCSS 数量(约 850 个),我将所有方法拆分为它们自己的类,并且为了使事情更容易,我扩展了一个包含所有辅助函数的抽象类。
AbstractMethod.class
public class AbstractMethod {
protected String requestWebPage(URL url) {
// download a webpage as a string
}
}
Example "account" subclass
public class AccountData extends AbstractMethod {
public String getAccount(String sessionId){
String webPage = requestWebPage("http://google.com/"+sessionId);
system.out.println(webPage);
return webPage;
}
}
我有大约 10 个这样的方法类,并且只想在调用主/基类中的方法之一时初始化它们:
public class MyBaseClass() {
private static AccountData ad;
public MyBaseClass() {
ad = new AccountData(); // Is there a better way?
}
public String getAccount(String sessionId) {
return ad.getAccount(String sessionId);
}
}
我试图在 MyBaseClass 类中创建一个初始化函数,该函数接受子类型作为参数并基于它的类创建一个对象:
private void initAccount() {
if (ad == null) {
ad = new AccountData();
}
}
但它很难看,我必须每个子类都有一个。
那么,这样做的“正确”方法是什么?有时在调用类时,我们只会使用其中的一两个方法,所以我不想每次都要初始化所有的子类。