最終更新: yamanobori_old 2010年09月21日(火) 11:14:27履歴
デザインパターン入門
// Factory.cs using System; namespace chap04 { namespace framework { public abstract class Factory { public Product create(String owner) { Product p = createProduct(owner); registerProduct(p); return p; } protected abstract Product createProduct(String owner); protected abstract void registerProduct(Product product); } } } // IDCard.cs using System; using chap04.framework; namespace chap04 { public class IDCard : Product { public String owner { get; private set; } public IDCard(String owner) { Console.WriteLine(owner + "のカードを作ります."); this.owner = owner; } public override void use() { Console.WriteLine(owner + "のカードを使います."); } } } // IDCardFactory.cs using System; using System.Collections.Generic; using chap04.framework; namespace chap04 { public class IDCardFactory : Factory { public List<String> owners { get; private set; } public IDCardFactory() { owners = new List<String>(); } protected override Product createProduct(string owner) { return new IDCard(owner); } protected override void registerProduct(Product product) { owners.Add(((IDCard)product).owner); } } } // Product.cs namespace chap04 { namespace framework { public abstract class Product { public abstract void use(); } } } // Program.cs using chap04.framework; namespace chap04 { class Program { 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(); System.Console.Read(); } } }デザインパターン入門
コメントをかく