
List1 Product類別
package framework; public abstract class Product{ public abstract void use(); }List2 Factory類別
package framework; public abstract class Factory{ private Product lnkProduct; 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); }List3 IDCard類別
package idcard; import framework.*; public class IDCard extends Product{ private String owner; IDCard(String owner){ System.out.println("建立" + owner + "的卡。"); this.owner = owner; } public void use(){ System.out.println("使用" + owner + "的卡。"); } public String getOwner(){ return owner; } }List4 IDCardFactory類別
package idcard; import framework.*; import java.util.*; public class IDCardFactory extends Factory{ private IDCard lnkIDCard; private Vector owners = new Vector(); protected Product createProduct(String owner){ return new IDCard(owner); } protected void registerProduct(Product product){ owners.add(((IDCard)product).getOwner()); } public Vector getOwners(){ return owners; } }List5 Main類別
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(); } }
沒有留言:
張貼留言