(一)简单工厂模式
简单工厂模式不属于GoF中的23个模式,但可以作为学习工厂模式的引导.
简单工厂模式一般情况下就是根据参数数据返回一个适当的子类,然后用基类或接口引用具体的对象,而不用考虑该实际对象的产生过程.
C#示例代码如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
NameFactory nf = new NameFactory();
Namer n = nf.getName("wu,donglei");
Console.WriteLine(n.getFrname());
Console.WriteLine(n.getLname());
Console.ReadLine();
}
}
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)
{
if (name.IndexOf(",") > 0)
{
return new LastFirst(name);
}
else
{
return new FirstFirst(name);
}
}
}
}
一点说明:为什么在标题中要嵌入英文?原因是为了能够让国外的网友能查询到这篇文章。平常在Google上查资料的时候,经常参考国外网友的博客,帮助我解决了很多问题,所以我也想让他们能够参考我写的内容。当然文中我不可能全部译为英文,所以我尽量把代码粘全,靠代码说话吧。



浙公网安备 33010602011771号