如何在单个方法中为不同端点创建对象,而不是在java中创建if循环
如何创建对象而不是if条件如何在单个方法中为不同端点创建对象,而不是在java中创建if循环,java,Java,如何创建对象而不是if条件 有20个端点。您可以使用factory设计模式 if (type.equalsIgnoreCase("Android")) { return new AndroidApi; } else if (type.equalsIgnoreCase("iOS")) { return new IosAPi; } else if (type.equalsIgnoreCase("Windows")) { return new WindowsApi; } 您
有20个端点。您可以使用factory设计模式
if (type.equalsIgnoreCase("Android")) {
return new AndroidApi;
} else if (type.equalsIgnoreCase("iOS")) {
return new IosAPi;
} else if (type.equalsIgnoreCase("Windows")) {
return new WindowsApi;
}
您可以使用工厂设计模式
if (type.equalsIgnoreCase("Android")) {
return new AndroidApi;
} else if (type.equalsIgnoreCase("iOS")) {
return new IosAPi;
} else if (type.equalsIgnoreCase("Windows")) {
return new WindowsApi;
}
您可以将API实现的类型和供应商放入映射中,如:
interface OperatingSystem
{
void runProcess();
}
class AndroidApi implements OperatingSystem {
public void runProcess() {
// TODO Auto-generated method stub
}
}
class IosAPi implements OperatingSystem {
public void runProcess() {
// TODO Auto-generated method stub
}
}
class WindowsApi implements OperatingSystem {
public void runProcess() {
// TODO Auto-generated method stub
}
}
class OSFactory
{
static OperatingSystem getOPApi(String type){
if (type.equalsIgnoreCase("Android")) {
return new AndroidApi();
} else if (type.equalsIgnoreCase("iOS")) {
return new IosAPi();
} else if (type.equalsIgnoreCase("Windows")) {
return new WindowsApi();
}
return null;
}
}
public class Client{
public static void main(String[] args) {
OperatingSystem os=OSFactory.getOPApi("Android");
}
}
您可以将API实现的类型和供应商放入映射中,如:
interface OperatingSystem
{
void runProcess();
}
class AndroidApi implements OperatingSystem {
public void runProcess() {
// TODO Auto-generated method stub
}
}
class IosAPi implements OperatingSystem {
public void runProcess() {
// TODO Auto-generated method stub
}
}
class WindowsApi implements OperatingSystem {
public void runProcess() {
// TODO Auto-generated method stub
}
}
class OSFactory
{
static OperatingSystem getOPApi(String type){
if (type.equalsIgnoreCase("Android")) {
return new AndroidApi();
} else if (type.equalsIgnoreCase("iOS")) {
return new IosAPi();
} else if (type.equalsIgnoreCase("Windows")) {
return new WindowsApi();
}
return null;
}
}
public class Client{
public static void main(String[] args) {
OperatingSystem os=OSFactory.getOPApi("Android");
}
}
是的,您可以使用factory设计模式或Java反射API来实现。 使用Java反射API,我们可以执行如下操作: 为此处提到的所有Api类创建基类。考虑BaseCLASS作为<代码>公共抽象类BaseAPI <代码>。p>
Api api = getApi("Android");
HashMap map=newhashmap();
map.put(“安卓”、“安卓达皮”);
map.put(“iOS”、“IosApi”);
map.put(“Windows”、“WindowsApi”);
公共静态BaseApi getInstance(字符串类型){
BaseApi obj=(BaseApi)类.forName(类型).newInstance();
返回obj;
}
是的,您可以使用factory设计模式或Java反射API来实现。
使用Java反射API,我们可以执行如下操作:
为此处提到的所有Api类创建基类。考虑BaseCLASS作为<代码>公共抽象类BaseAPI <代码>。p>
Api api = getApi("Android");
HashMap map=newhashmap();
map.put(“安卓”、“安卓达皮”);
map.put(“iOS”、“IosApi”);
map.put(“Windows”、“WindowsApi”);
公共静态BaseApi getInstance(字符串类型){
BaseApi obj=(BaseApi)类.forName(类型).newInstance();
返回obj;
}
添加更多细节。查看工厂方法模式。添加更多细节。查看工厂方法模式。回答不错,或者这样AndroidApi=(AndroidApi)getApi(“Android”)代码>?回答很好,或者用这种方式AndroidApi=(AndroidApi)getApi(“Android”)代码>?