C#设计模式--简单工厂模式

设计模式:

简单工厂模式(Simple Factory Pattern)

介绍:简单工厂模式不是Gof23种设计模式之一。但它在实际的编程中经常被用到,而且思想也非常简单,下面简单举例说明:

简单工厂模式类图:

简单工厂模式C#代码举例:

MobilePhone(手机类)

1     public abstract class MobilePhone
2     {
3         
4         public abstract void print();
5     }

Iphone(苹果手机类)

1 public class Iphone : MobilePhone
2     {
3 
4         public override void print()
5         {
6             Console.WriteLine("我是苹果品牌!");
7         }
8     }

XiaoMI(小米手机类)

1 public class XiaoMI : MobilePhone
2     {
3         public override void print()
4         {
5             Console.WriteLine("我是小米手机");
6         }
7     }

SmarTisan(锤子手机类)

public class SmarTisan : MobilePhone
    {
        public override void print()
        {
            Console.WriteLine("我是锤子手机!");
        }
    }

MobielPhoneFactory(手机工厂类)

 1 public class MobielPhoneFactory
 2     {
 3         public static MobilePhone CreateMobilePhone(string PhoneBrand)
 4         {
 5             MobilePhone mobilePhone = null;
 6             if (PhoneBrand.Equals("苹果"))
 7             {
 8                 mobilePhone = new Iphone();
 9             }
10             else if (PhoneBrand.Equals("小米"))
11             {
12                 mobilePhone = new XiaoMI();
13             }
14             else if (PhoneBrand.Equals("锤子"))
15             {
16                 mobilePhone = new SmarTisan();
17             }
18             else
19             {
20             
21             }
22             return mobilePhone;
23         }
24         
25     }

 

测试工厂代码:

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             MobilePhone mobilephone1 = MobielPhoneFactory.CreateMobilePhone("苹果");
 6             if(mobilephone1 != null)
 7             mobilephone1.print();
 8             MobilePhone mobilephone2 = MobielPhoneFactory.CreateMobilePhone("小米");
 9             if(mobilephone2 != null)
10             mobilephone2.print();
11             MobilePhone mobilephone3 = MobielPhoneFactory.CreateMobilePhone("锤子");
12             if(mobilephone3 != null)
13             mobilephone3.print();
14             Console.Read();
15         }
16     }

运行结果:

 

总结:如有问题欢迎留言!以上便是一个简单工厂模式!

代码工程文件下载

 

posted @ 2017-02-16 13:51  JiYF  阅读(3475)  评论(0编辑  收藏  举报