码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之工厂模式

时间:2018-02-28 14:00:16      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:ram   mode   uri   技术分享   base   gen   生成   factory   bubuko   

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

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

 

技术分享图片

 

示例代码如下:

 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 }

 

设计模式之工厂模式

标签:ram   mode   uri   技术分享   base   gen   生成   factory   bubuko   

原文地址:https://www.cnblogs.com/fzxiaoyi/p/8482991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!