public class FactoryMethodDesignPattern {
public static void main(String[] args) {
Product product = new FactoryA().create();
product.display();
}
}
interface Factory {
Product create();
}
class FactoryA implements Factory {
@Override
public Product create() {
return new ProductA();
}
}
class FactoryB implements Factory {
@Override
public Product create() {
return new ProductB();
}
}
interface Product {
void display();
}
class ProductA implements Product{
@Override
public void display() {
System.out.println("This is productA");
}
}
class ProductB implements Product{
@Override
public void display() {
System.out.println("This is productB");
}
}