设计模式一工厂模式之简单工厂

简单工厂大家大工作中我想用的是最多的吧。下面是定议

简单工厂模式: 

       简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

好了如果你没有看懂的话。那我们用现实生活中的一个列子来说明。现在大家都知道各个厂家生产的智能电饭锅吧,电饭锅我通常是用来煮饭,那我们先来看下UML图:

第个电饭锅都有一个功能那就是煮饭可每个厂家的煮饭实现是不一样有,有的要低部加热,有的要全锅加热等等每种加热方煮出的饭口味是不一样的。所以你可以根据自己的口味选择购买哪个厂家的电饭锅来煮饭。如果电饭锅厂家看到我这片文章我可以把你们的电饭锅品牌回上哦,也来个植入广告(哈哈,扯远了,让大家放松下)。

那我们来看下代码实现

1 /// <summary>
2         /// 简单工厂接口(只有一个煮饭的方法)
3         /// </summary>
4         public interface ICooker
5         {
6             void Cook();
7         }
接口
 1 /// <summary>
 2         /// A工厂实现接口
 3         /// </summary>
 4         public class AFactory: ICooker
 5         {
 6 
 7             #region ICooker成员
 8 
 9             public void Cook()
10             {
11                 Console.WriteLine("A厂家的电饭锅煮饭");
12             }
13 
14             #endregion
15         }
16         /// <summary>
17         /// B工厂接口
18         /// </summary>
19         public class BFactory: ICooker
20         {
21 
22             #region ICooker成员
23 
24             public void Cook()
25             {
26                 Console.WriteLine("B厂家的电饭锅煮饭");
27             }
28 
29             #endregion
30         }
31 
32 /// <summary>
33         /// C工厂接口
34         /// </summary>
35         public class CFactory: ICooker
36         {
37 
38             #region ICooker成员
39 
40             public void Cook()
41             {
42                 Console.WriteLine("C厂家的电饭锅煮饭");
43             }
44 
45             #endregion
46         }
具体工厂
 1 public class CreateFactory
 2         {
 3             public static ICooker GeneratorCooker(string createName) { 
 4             switch (createName)
 5             {
 6                 case "A":
 7                     return new AFactory();                   
 8                 case "B":
 9                     return new BFactory();
10                 case "C":
11                     return new CFactory();
12                 default:
13                     throw new NotImplementedException();                   
14             }
15         }
简单工厂

简单工厂模式到这就算结束。

posted @ 2016-02-27 16:21  无所谓什么也行  阅读(168)  评论(0)    收藏  举报