Csharp: Simple Factory Pattern

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// <summary>
  /// Summary description for Namer.
  /// Base class for getting split names
  /// Simple Factory Patterns
  /// geovindu,Geovin Du,涂聚文 edit
  /// </summary>
   
  public class Namer
  {
      /// <summary>
      /// parts stored here
      /// </summary>
      protected string frName, lName;
 
      /// <summary>
      /// return first name
      /// </summary>
      /// <returns></returns>
      public string getFrname()
      {
          return frName;
      }
      /// <summary>
      /// return last name
      /// </summary>
      /// <returns></returns>
      public string getLname()
      {
          return lName;
      }
  }

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/// Summary description for LastFirst.
  /// Simple Factory Patterns
  /// geovindu,Geovin Du,涂聚文 edit
  /// </summary>
  public class LastFirst : Namer
  {
 
      /// <summary>
      ///
      /// </summary>
      /// <param name="name"></param>
      public LastFirst(string name)
      {
          int i = name.IndexOf(",");
          if (i > 0)
          {
              lName = name.Substring(0, i);
              frName = name.Substring(i + 1).Trim();
          }
          else
          {
              lName = name;
              frName = "";
          }
      }
  }

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/// <summary>
/// Summary description for FirstFirst.
/// Simple Factory Patterns
/// geovindu,Geovin Du,涂聚文 edit
/// </summary>
public class FirstFirst : Namer
{
      
    /// <summary>
    ///
    /// </summary>
    /// <param name="name"></param>
    public FirstFirst(string name)
    {
        int i = name.IndexOf(" ");
        if (i > 0)
        {
            frName = name.Substring(0, i).Trim();
            lName = name.Substring(i + 1).Trim();
        }
        else
        {
            lName = name;
            frName = "";
        }
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/// <summary>
/// Summary description for NameFactory.
/// Simple Factory Patterns
/// geovindu,Geovin Du,涂聚文 edit
/// </summary>
public class NameFactory
{
    public NameFactory() { }
    /// <summary>
    ///
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    public Namer getName(string name)
    {
        int i = name.IndexOf(",");
        if (i > 0)
            return new LastFirst(name);
        else
            return new FirstFirst(name);
    }
}

  

窗體中調用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/// <summary>
   /// Simple Factory Patterns
   /// geovindu,Geovin Du,涂聚文 edit
   /// </summary>
   public partial class SimpleFactoryForm : Form
   {
 
       private NameFactory nameFact;
 
       /// <summary>
       ///
       /// </summary>
       public SimpleFactoryForm()
       {
           InitializeComponent();
           nameFact = new NameFactory();
       }
       /// <summary>
       ///
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
       private void SimpleFactoryForm_Load(object sender, EventArgs e)
       {
 
       }
       /// <summary>
       ///
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
       private void button1_Click(object sender, EventArgs e)
       {
           Namer name = nameFact.getName(txtbName.Text);
           txtbFirst.Text = name.getFrname();
           txtbLast.Text = name.getLname();
       }
   }

  

 

 

posted @   ®Geovin Du Dream Park™  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2012-09-17 SQL 生成公曆和農曆對照數據,公曆查找農曆和農曆查找公曆函數
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示