使用环境
某个对象具有类似的功能,比方说饭馆、汽车厂等等
简单例子
//基类 线条
class Line
{
public string Name
{
get;
set;
}
}
//带箭头的线条
class ArrowLine:Line
{
public ArrowLine()
{
this.Name = "Arrow";
}
}
//带标签的线条
class LabelLine:Line
{
public LabelLine()
{
this.Name = "Label";
}
}
//生成线条工厂
class LineFactory
{
public static Line CreateLie(string name)
{
Line line=null;
switch (name)
{
case "Arrow":
line= new ArrowLine();
break;
case "Label":
line=new LabelLine();
break;
}
return line;
}
}
//调用方式
static void Main(string[] args)
{
//只需要传递线条类型,由工厂决定如何生产
var line= LineFactory.CreateLie("Arrow");
Console.WriteLine(line.Name);
Console.ReadKey();
}
每次增加新一类操作都需要在工程中提供方法。
要点
switch 和if-else的优雅一点的实现方式。当然如果不介意大量使用switch和if-else可以不用设计模式。