首页 > 其他 > 详细

工厂方法模式

时间:2018-07-25 12:24:00      阅读:249      评论:0      收藏:0      [点我收藏+]

       工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

       技术分享图片

       故事:雷锋依然在人间

       小菜班里有个叫薛磊风的同学,大学期间一直在帮助一个老人,说自己是学雷锋,但是这段时间他出事受伤了,希望班里的同学能帮忙照顾老人。

Leifeng.cs

 1 namespace FactoryMethodPattern
 2 {
 3     //雷锋类
 4     class Leifeng
 5     {
 6         public void Sweep()
 7         {
 8             Console.WriteLine("扫地");
 9         }
10         public void Wash()
11         {
12             Console.WriteLine("洗衣");
13         }
14         public void BuyRice()
15         {
16             Console.WriteLine("买米");
17         }
18     }
19 
20     //学雷锋的大学生类
21     class Undergraduate : Leifeng { }
22     //社区志愿者类
23     class Volunteer : Leifeng { }
24 
25 
26 
27     //雷锋工厂
28     interface IFactory
29     {
30         Leifeng CreateLeifeng();
31     }
32 
33     //学雷锋的大学生工厂
34     class UndergraduateFactory : IFactory
35     {
36         public Leifeng CreateLeifeng()
37         {
38             return new Undergraduate();
39         }
40     }
41     //社区志愿者工厂
42     class VolunteerFactory : Leifeng
43     {
44         public Leifeng CreateLeifeng()
45         {
46             return new Volunteer();
47         }
48     }
49 }

 

Program.cs

 1 namespace FactoryMethodPattern
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             IFactory factory = new UndergraduateFactory();  //换成社区志愿者,改这里就可以了
 8             Leifeng student = factory.CreateLeifeng();
 9 
10             student.BuyRice();
11             student.Sweep();
12             student.Wash();
13 
14             Console.Read();
15         }
16     }
17 }

 

工厂方法模式

原文:https://www.cnblogs.com/nullcodeworld/p/9365252.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!