工厂模式(Factory)

有一个OEM制造商代理做HP笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单AcerLenovoDell,该OEM商发现,如果一次同时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,用C#控制台应用程序实现该OEM制造商的工厂模式。

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Factory
 7 {
 8     class Laptop
 9     {
10     }
11     class LaptopHP : Laptop
12     {
13         public LaptopHP()
14         {
15             Console.WriteLine("生产了一台惠普电脑");
16         }
17     }
18     class LaptopAcer : Laptop
19     {
20         public LaptopAcer()
21         {
22             Console.WriteLine("生产了一台宏基电脑");
23         }
24     }
25     class LaptopLenovo : Laptop
26     {
27         public LaptopLenovo()
28         {
29             Console.WriteLine("生产了一台联想电脑");
30         }
31     }
32     class LaptopDell : Laptop
33     {
34         public LaptopDell()
35         {
36             Console.WriteLine("生产了一台戴尔电脑");
37         }
38     }
39     interface IFactory
40     {
41         Laptop CreateLaptop();
42     }
43     class HPFactoy : IFactory
44     {
45         public Laptop CreateLaptop()
46         {
47             return new LaptopHP();
48         }
49     }
50     class AcerFactory : IFactory
51     {
52         public Laptop CreateLaptop()
53         {
54             return new LaptopAcer();
55         }
56     }
57     class LenovorFactory : IFactory
58     {
59         public Laptop CreateLaptop()
60         {
61             return new LaptopLenovo();
62         }
63     }
64     class DellFactory : IFactory
65     {
66         public Laptop CreateLaptop()
67         {
68             return new LaptopDell();
69         }
70     }
71 
72     class Program
73     {
74         static void Main(string[] args)
75         {
76             IFactory laptopFactory = new HPFactoy();
77             Laptop laptop = laptopFactory.CreateLaptop();
78             laptopFactory = new AcerFactory();
79             laptop = laptopFactory.CreateLaptop();
80             laptopFactory = new LenovorFactory();
81             laptop = laptopFactory.CreateLaptop();
82             laptopFactory = new DellFactory();
83             laptop = laptopFactory.CreateLaptop();
84         }
85     }
86 }

 

posted @ 2012-05-14 21:53  ZH奶酪  阅读(614)  评论(0编辑  收藏  举报