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(); } }