假设我的实体类实现了一个接口。我如何让我的控件类使用该接口,以便控件类可以将该接口实例化为一个对象。
最初我会使用我的控件类来实例化实体类的实例。但是,我想通过使用接口将它们解耦。
似乎抽象工厂设计模式在这里可以提供帮助。
使用定义通用实体工厂的接口。一旦你的控件类有了一个工厂实例(作为一个接口),它就可以调用它的 createEntity() 方法来创建特定的实体实例。
您可以使用静态工厂方法来完成此操作
示例实现
public class ModelFactory implements ModelInterface{
public static ModelInterface getNewInstance() {
return new Model();
}
}
public interface ModelInterface {
}
public class Model implements ModelInterface{
}
现在在控制器类
ModelInterface object = ModelFactory.getNewInstance();
一种方法是使用静态工厂方法来创建和返回EntityInterface
引用。请参阅这个基本示例:
EntityInterface entity = EntityFactory.getEntity();
使用这样定义的类型:
class EntityFactory {
public static EntityInterface getEntity() {
return new Entity();
}
}
interface EntityInterface {
}
class Entity implements EntityInterface {
}