Factoryパターン
Interface
public interface MyIF {
void hello();
}
実装クラス
public class Impl implements MyIF {
public void hello() {
System.out.println("切り替えられる実装処理");
}
}
Factory
public class Factory {
public static MyIF create() {
return new Impl();
}
}
IFを使用するクラス
public class Executor {
public void execute () {
System.out.println("事前処理");
MyIF myif = Factory.create();
myif.hello();
System.out.println("事後処理");
}
}
実行
public class Test {
public static void main(String[] args) {
Executor exe = new Executor();
exe.execute();
}
}
SupplierでFactoryパターン
Interface
public interface MyIF {
void hello();
}
実装クラス
public class Impl implements MyIF {
public void hello() {
System.out.println("切り替えられる実装処理");
}
}
IFを使用するクラス
public class Executor {
public void execute (Supplier<MyIF> supplier) {
System.out.println("事前処理");
MyIF myif = supplier.get();
myif.hello();
System.out.println("事後処理");
}
}
実行
public class Test {
public static void main(String[] args) {
Executor exe = new Executor();
exe.execute(Impl::new);
}
}