FactoryMethodパターン
public abstract class Factory {
public final Product create(String owner) {
Product p = createProduct(owner);
registerProduct(p);
return p;
}
protected abstract Product createProduct(String owner);
protected abstract void registerProduct(Product product);
}
public abstract class Product {
public abstract void use();
}
import framework.*;
import idcard.*;
public class Main {
public static void main(String[] args) {
Factory factory = new IDCardFactory();
Product card1 = factory.create("結城浩");
Product card2 = factory.create("とむら");
Product card3 = factory.create("佐藤花子");
card1.use();
card2.use();
card3.use();
}
}