标签:简单工厂模式
简单工厂模式:根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个共同的父类和共同的方法,但每个方法执行的任务不同,而且根据不同的数据进行了优化。
例子:姓名由“姓、名”组成。假设现在有两种输入形式“马,云”“马 云”,一种是“,”分割,一种是空格分割。现在要求取出姓 和 名。
class SplitName
{
private string frName, lName;
public string LName
{
get { return lName; }
set { lName = value; }
}
public string FrName
{
get { return frName; }
set { frName = value; }
}
} class CommaSplit:SplitName
{
public CommaSplit(string name)
{
int i = name.IndexOf(",");
if (i > 0)
{
FrName = name.Substring(0, i);
LName = name.Substring(i + 1);
}
else
{
FrName = name;
LName = "";
}
}
} class BlankSplit:SplitName
{
public BlankSplit(string name)
{
int i = name.IndexOf(" ");
if (i > 0)
{
FrName = name.Substring(0, i);
LName = name.Substring(i + 1);
}
else
{
FrName = name;
LName = "";
}
}
}class NameFactory
{
public NameFactory()
{ }
public SplitName getName(string name)
{
if (name.IndexOf(",") > 0)
{
return new CommaSplit(name);
}
else
{
return new BlankSplit(name);
}
}
} class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入你的姓名:");
string name = Console.ReadLine();
NameFactory nameFactory=new NameFactory ();
SplitName spName = nameFactory.getName(name);
Console.WriteLine("您姓{0}",spName.FrName);
Console.WriteLine("您的名字{0}",spName.LName);
Console.ReadKey(true);
}
}好的编程模式使程序可用性高,易于后期维护,一点一点学编程。注意:程序中的逗号是中文状态下的逗号。
标签:简单工厂模式
原文地址:http://blog.csdn.net/jielizhao/article/details/39552087