作者注:工厂类方法的例子参考了这位老兄的文章:http://www.cnblogs.com/fortune/archive/2007/09/12/890729.html
这里是为了给大家展示一下工厂模式和扩展方法给大家编程带来的扩展性和灵活性。
啥也不说,直接上code :)先建立产品的抽象类:


1

2

3

4

5

6

7



8

9



10

11

12

13

14

15

16

17

再建立具体的产品类:


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

建立抽象工厂类:


1

2

3

4

5

6

7



8

9



10

11

12

13

再建立具体工厂类:


1

2

3

4

5

6

7



8

9



10

11



12

13

14

15

16

再建立个通用管理类:


1

2

3

4

5

6

7



8

9



10

11



12

13

14

15

16

17

这样一来,我们的红旗车工厂就建好了。哈哈,通用都破产保护了,我竟然还在建汽车工厂。说明中国的经济还是不错的嘛。
我现在想生产一辆红旗汽车,代码是相当的简单:


1

2

3

4

5

6

7

8



9

10



11

12



13

14

15

16

17

18

19

现在用户提出了一个变态的要求,需要这个红旗汽车可以扭来扭去。难道我要重新见个工厂?没资金了,怎么办啊。
不要慌,c#3.0扩展方法来了:
先建立一个扩展类:


1

2

3

4

5

6

7

8



9

10



11

12



13

14

15

16

17

然后将我们原来的调用程序就可以用上这个方法了。


1

2

3

4

5

6

7

8



9

10



11

12



13

14

15

16

17

18

19

20

21

汽车真的可以扭来扭去了哦。