不加分割符“,”的运行结果为
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Factory_Model_Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
//调用简单工厂类,根据传入的参数的不同,程序自动创建与之相对应的子类对象
Namer nm = new NameFactory().getName(textBox1.Text);
textBox2.Text = nm.getFrname();
textBox3.Text = nm.getLname();
}
}
//简单工厂类:基类
public class Namer
{
protected string frName, lName;
public string getFrname()
{
return frName;
}
public string getLname()
{
return lName;
}
}
//简单工厂类:第一个子类
public class FirstFirst : Namer
{
public FirstFirst(string name)
{
int i = name.Trim().IndexOf(" ");
if (i > 0)
{
frName = name.Substring(0, i).Trim();
lName = name.Substring(i + 1).Trim();
}
else
{
lName = name;
frName = "";
}
}
}
//简单工厂类:第二个子类
public class LastFirst : Namer
{
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 = "";
}
}
}
//简单工厂类
public class NameFactory
{
public NameFactory() { }
public Namer getName(string name)
{
int i = name.IndexOf(",");
if (i > 0)
{
return new LastFirst(name);
}
else
return new FirstFirst(name);
}
}
}