【发布时间】:2017-05-25 21:08:25
【问题描述】:
在我的 Android 应用程序中,我有一个类为我提供静态字符串值;像这样:
public class VehicleInfo {
public static String getVehicleEnginePower(boolean isNew) {
return isNew ? "1800CC" : "1600CC";
}
}
现在我有另一个类别,所以我必须传递另一个布尔值,我会得到我需要的值。但是,这些类别将继续增加。所以我查看了Open/Closed principle,它看起来有望快速增强。为了确保这一点,我将VehicleInfo 类作为接口,然后我将让其他类实现VehicleInfo。
public interface VehicleInfo {
String getVehicleEnginePower();
}
public class NewVehicle implements VehicleInfo {
@Override
public String getVehicleEnginePower() {
return "1800CC";
}
}
和其他类别类也将是这样的。这样,我将不得不为所有新类别添加另一个类。
我想问的问题是:有没有办法让我拥有这个接口的单个实例?因为在整个应用流程中,用户只能看到一个类别,直到他切换到另一个类别。
我不想在多个点实例化这些类。为了澄清我的问题,我想在我的应用程序开始时做这样的事情:
if (isNew) {
VehicleInfo vehicleInfor = new NewVehicle();
}
在整个应用程序中,每当我调用 VehicleInfo.getVehicleEnginePower 时,它都应该始终从 NewVehicle 类返回引擎功率。
这样的事情可能吗?或者我只是很傻,我将不得不在多个点上实例化这个接口?
【问题讨论】:
-
你是在问如何创建单例?
-
你为什么不试试
enum -
根据您的要求,您可以使用 Builder Pattern 。这是相同link的示例的很好解释
-
@shamosel 是这样的。
标签: java android architecture singleton