我正在研究一款android应用程序,以通过网络访问硬件。功能调用对于每个硬件制造商都是相同的,但响应的响应和解析将因制造商而异。我最初的想法是这样的:
public class ManufacturerONEobject {
public void getURL(){ manufacturer Specific Code }
public void postURL(){ manufacturer Specific Code }
}
public class ManufacturerTWOobject {
public void getURL(){ manufacturer Specific Code }
public void postURL(){ manufacturer Specific Code }
}
public class GenericObject(){
ManufacturerONEobject manufacturerONE = null;
ManufacturerTWOobject manufacturerTWO = null;
if(manufacturer.equals("manufacturerONE"){
manufacturerONE = new ManufacturerONEobject();
}
if(manufacturer.equals("manufacturerTWO"){
manufacturerTWO = new ManufacturerTWOobject();
}
public void getURL(){ specificManufacturerObject.getURL();}
public void postURL(){ specificManufacturerObject.postURL();}
}我选择了这种安排,因为它允许我在应用程序中添加新的制造商,只需在通用对象中添加一个全局变量和一个if语句,并且所有制造商特定的代码都将在其自己的类中。但是,我将很快有30个全局变量,只有一个实际被使用。我查看了泛型类,但是我没有看到将泛型类的方法链接到将在运行时确定的制造商特定类的方法。有没有更优雅和/或有效的方式来做到这一点?