工作之余,在看资料过程中发现一个极易理解的简单工厂模式的例子,自己亲自试练一番,感觉对这个设计模式不熟悉的朋友,
 一看马上就知道是什么回事了。
简单工厂模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返的类都有一个共同的你类和共同的方法,
 但每个方法执行的任务不同,而且根据不同的数据进行了优化。
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。
 
 
 
下面进行一个代码示例:
     
     public class getName
     {
         private string _fName, _lName;
public string fName { get; set; }
        public string lName { get; set; }
     }
     定义一个类,返回带有空格在名字中间的人的姓与名
     public class fristName : getName
     {
         public fristName(string name)
         {
             int i=name.Trim().IndexOf(' ');
             if (i > 0)
             {
                 fName = name.Substring(0, i).Trim();
                 lName = name.Substring(i + 1).Trim();
             }
             else
             {
                 fName = name;
                 lName = "";
             }
         }
     }
     定义一个类,返回带有逗号在名字中间的人的姓与名
     public class lastName : getName
     {
         public lastName(string name)
         {
             int i = name.Trim().IndexOf(',');
             if (i > 0)
             {
                 lName = name.Substring(0, i).Trim();
                 fName = name.Substring(i + 1).Trim();
             }
             else
             {
                 lName = name;
                 fName = "";
             }
         }
     }
下面创建简单的工厂模式的类:
     public class nameFac
     {
         public nameFac()
         { }
        public static getName GetName(string name)
         {
             int i = name.IndexOf(',');
             if (i > 0)
             {
                 return new lastName(name);
             }
             else
             {
                 return new fristName(name);
             }
         }
     }
通过一个nameFac工厂类把所有的业务流程都耦合在一起。在界面层使用的时候只需代用到工厂类就可以返回结果。
     getName gn = nameFac.GetName("Kelly Chen");
     richTextBox1.Text = gn.fName + "  ,   " + gn.lName;