ドメインパッケージにはMyInterface
というインターフェースがあります。 MyFactory
というファクトリクラスもあり、実行時にMyInterfaceを実装するクラスのインスタンスを作成するのに役立ちます。サービス層のオブジェクトを返すドメインパッケージのファクトリメソッドで渡すオブジェクトまたはクラスは何ですか?
ドメイン・レイヤー
interface MyInterface{
//some Domain specific methods here
}
class MyFactory{
public static MyInterface getInstance(Object resource) {
// return MyInterfaceImpl instance via the methods
// this Object can also be a Class argument, where I do
// Class.forName("").newInstance(); but this is a bad design.
}
class DomainServiceImpl {
public void domainMethod(Object res) {
MyInterface i = MyFactory.getInstance(res);
}
}
サービス層
class Class1 implements MyInterface {
}
class Class2 implements MyInterface {
}
class ServiceClass {
public void service() {
domainServiceImpl.domainMethod(Object res);
}
}
だから私は、if/ELSEまたはスイッチを使用して回避することなく、サービス層の正しいインスタンスを取得するには、ドメイン層に私のファクトリメソッドを書くべきか循環依存性。
オプション:反射を使用することはできますが、方法はわかりません。
「正しいインプラント」とは何ですか?どの基準に基づいて決定されるのか? – guillaume31
異なるバージョンのリソースがあり、各バージョンごとに1つのインプリメンテーションがあるとしたら、そのリソースバージョンに対して正しいインプリメンテーションをインスタンス化したいとします。 – user2340345
'ServiceClass.service()'はどこからリソースを取得しますか?異なる時点でのソースコードのバージョンと同じバージョンを意味しますか? – guillaume31