私のエンティティクラスがインターフェイスを実装するとします。コントロールクラスがそのインターフェイスをオブジェクトとしてインスタンス化できるように、コントロールクラスにそのインターフェイスを使用させるにはどうすればよいですか。
最初は、コントロールクラスを使用して、エンティティクラスのインスタンスをインスタンス化します。ただし、インターフェイスを使用してそれらを分離したいと思います。
ここでは、Abstract Factoryデザイン パターンが役立つようです。
汎用エンティティ ファクトリを定義するインターフェイスを使用します。コントロール クラスがファクトリ インスタンスを (インターフェイスとして) 持つと、その createEntity() メソッドを呼び出して、特定のエンティティ インスタンスを作成できます。
これを行う方法の1つは、静的ファクトリメソッドを使用してEntityInterface
参照を作成して返すことです。この基本的な例を参照してください。
EntityInterface entity = EntityFactory.getEntity();
次のように定義されたタイプの場合:
class EntityFactory {
public static EntityInterface getEntity() {
return new Entity();
}
}
interface EntityInterface {
}
class Entity implements EntityInterface {
}
これを達成するために静的ファクトリメソッドを使用できます
実装例
public class ModelFactory implements ModelInterface{
public static ModelInterface getNewInstance() {
return new Model();
}
}
public interface ModelInterface {
}
public class Model implements ModelInterface{
}
現在、コントローラークラスに
ModelInterface object = ModelFactory.getNewInstance();