设计模式之工厂模式

Posted fzxiaoyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之工厂模式相关的知识,希望对你有一定的参考价值。

工厂模式:多个不同对象的生成由同一个对象进行实例化,外部只需通过工厂类提供指定参数,

就能返回对应的对象,而无需关心内部的实现细节.

 

技术分享图片

 

示例代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Security;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 //所有动物的基类
 8 class Animal
 9 {
10     public virtual void Run()
11     {
12         Console.WriteLine("动物在跑!");
13     }
14 }
15 //派生自动物类的猴子类
16 class Monkey : Animal
17 {
18     public override void Run()
19     {
20         base.Run();
21         Console.WriteLine("Monkey在跑!");
22     }
23 }
24 //派生自动物类的老虎类
25 class Triger : Animal
26 {
27     public override void Run()
28     {
29         base.Run();
30         Console.WriteLine("猴子在跑!");
31     }
32 }
33 
34 enum AnimalType
35 {
36     Monkey, triger
37 }
38 /// <summary>
39 /// 动物工厂
40 /// </summary>
41 class  AnimalFactory
42 {
43     /// <summary>
44     /// 获取动物
45     /// </summary>
46     /// <param name="type">类型</param>
47     /// <returns>返回动物</returns>
48     public Animal GetAnimal(AnimalType type)
49     {
50         Animal newAnimal = null;
51         switch (type)
52         {
53             case AnimalType.Monkey: newAnimal = new Monkey(); break;
54             case AnimalType.triger: newAnimal = new Triger(); break;
55             default: break;
56         }
57         return newAnimal;
58     }
59 }
60 
61 
62 namespace FactoryModel
63 {
64     class Program
65     {
66         static void Main(string[] args)
67         {
68             //实例化一个动物工厂类
69             AnimalFactory factory = new AnimalFactory();
70             //外部不需要关心猴子是怎么生成的,只需要传递参数,就能返回一只猴子
71             Animal monkey = factory.GetAnimal(AnimalType.Monkey);
72             monkey.Run();
73             Console.WriteLine("******************************");
74             Animal triger = factory.GetAnimal(AnimalType.triger);
75             triger.Run();
76 
77             Console.ReadKey();
78         }
79     }
80 }

 

以上是关于设计模式之工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂

设计模式之简单工厂模式

设计模式之简单工厂模式

Java代码实现设计模式之工厂模式

设计模式之简单工厂模式

设计模式之工厂模式