描述:定义一个工厂类,根据参数创建不同的产品。
角色:
Factory(工厂类):根据参数,创建所需对象
Product(抽象类产品):工厂类创建的所有对象的父类,封装了产品的公共方法
ConcreteProduct(具体产品):工厂创建目标,所有被创建的对象都是某个具体类的实例。它要实现抽象产品中声明的抽象方法
//抽象产品类
abstract class Product
{
public void MethName()
{
//公共方法的实现
}
public abstract void MethodDiff();
//声明抽象业务方法
}
//具体产品
class ConcreteProductA extends Product
{
public override void MethodDiff()
{
//业务方法的实现
}
}
class ConcreteProductB extends Product
{
public override void MethodDiff()
{
//业务方法的实现
}
}
//工厂类
class Factory
{
public static Product GetProduct(string arg)
{
Product product = null;
if(arg.Equals("A")
{
product = new ConcreteProductA();
//init
}
else if(arg.Equals("B"))
{
product = new ConcreteProductB();
//init
}
else
{
....//其他情况
}
return product;
}
}
class Program
{
static void Main(string[] args)
{
Product product;
product = Factory.GetProduct("A");//工厂类创建对象
Product.MethName();
product.MethodDiff();
}
}