简单工厂模式

简单工厂模式
在OO程序中,我们经常看到的一种模式就是简单工厂模式。简单工厂模式根据体共同它的数据,返回几个可能类中一个类得实例。通常它返回的类都有一个共同的父类和共同的方法,但每个方法执行的任务不同,而且根据不同的数据进行了优化。
一个简单的例子
基类
public class BaseClass
{
protected string firstname;
protected string lastname;

public string GetFirstName()
{
return firstname;
}
public string GetLastName()
{
return lastname;
}
}
第一个继承类
public class FirstName : BaseClass
{
public FirstName(string name)
{
int i = name.Trim().IndexOf(" ");
if (i > 0)
{
firstname
= name.Substring(0, i);
lastname
= name.Substring(i + 1);

}
else
{
firstname
= name;
lastname
= "";
}
}
}
第二个继承类
public class SecondClass: BaseClass
{
public SecondClass(string name)
{
int i = name.Trim().IndexOf(",");
if (i > 0)
{
firstname
= name.Substring(0, i);
lastname
= name.Substring(i + 1);

}
else
{
firstname
= name;
lastname
= "";
}
}
}
工厂类
public class NameFactory
{
public NameFactory() { }
public BaseClass GetName(string name)
{
int i = name.Trim().IndexOf(",");
if (i > 0)
{
return new SecondClass(name);
}
else
{
return new FirstName(name);
}
}
}
Main函数里调用
class Program
{
static void Main(string[] args)
{
string name = Console.ReadLine();
NameFactory nf
= new NameFactory();
BaseClass bc
= nf.GetName(name);
Console.WriteLine(bc.GetFirstName());
Console.WriteLine(bc.GetLastName());
}
}
运行效果
 
这个就是简单工厂模式的基本原理,创建一个抽象工厂,他决定返回哪一个类得实例,并将该实例返回。接下来可以调用哪个类的实例的方法,但不需要知道具体使用的是哪一个子类。
posted @ 2011-03-31 21:09  偏执于肉夹馍和煎饼果子  阅读(162)  评论(0编辑  收藏  举报