编程中的简单工厂就是一个生产对象的类,它的主要作用是创建具体的产品类实例
class SimpleFactory
{
private Car car;
private string CarType = ConfigurationManager.AppSettings["brand"];
public Car CreateCar(int number)
{
switch(CarType)
{
case "大众":
car = new 大众(number);
break;
case "宝马":
car = new 宝马(number);
break;
default:
car = null;
break;
}
return car;
}
}
abstract class Car
{
public int number;
public Car(int n)
{
number = n;
}
public abstract void Msg();
}
class 大众 : Car
{
public 大众(int number) : base(number) { }
public override void Msg()
{
Console.WriteLine(number + " 一汽大众!");
}
}
class 宝马 : Car
{
public 宝马(int number) : base(number) { }
public override void Msg()
{
Console.WriteLine(number + " 华晨宝马!");
}
}
简单工厂的优点:
1.简单工厂可以有效地降低客户端和具体对象的耦合,将new具体对象的任务交给了一个简单工厂类
2.可以有效的进行代码复用,如客户端A和客户端B都需要一个具体对象,客户端A和客户端B可以通过同一个简单工厂来获取具体类型的实例
简单工厂的缺点:
一定程度上违背了开闭原则,在新增产品时需要修改简单工厂类