1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { } } /* AbstractFactory 関連ある複数インスタンスをまとめて生成。それぞれの整合性を保証する */ public abstract class AbstractFactory { //各パーツはお互いに関連性がある。 abstract public ConcreateProduct1 CreateProduct1(); abstract public ConcreateProduct2 CreateProduct2(); } public class ConcreateFactory:AbstractFactory { //このファクトリを使うことでパーツの関連性が保証される。 public override ConcreateProduct1 CreateProduct1() { return new ConcreateProduct1(); } public override ConcreateProduct2 CreateProduct2() { return new ConcreateProduct2(); } } public class AbstractProduct1 { } public class AbstractProduct2 { } public class ConcreateProduct1: AbstractProduct1 { } public class ConcreateProduct2 : AbstractProduct2 { } } |