首页 > 代码库 > 【2016-10-17】【坚持学习】【Day8】【简单工厂模式】

【2016-10-17】【坚持学习】【Day8】【简单工厂模式】

今天学习简单工厂模式,

结构

一个抽象产品

多个具体产品

一个工厂类,通过传入参数,new出不同的产品

代码:

abstract class Product
{
     //所有产品类的公共业务方法
public void MethodSame() 
{
    //公共方法的实现
}

//声明抽象业务方法
public abstract void MethodDiff();
}
class ConcreteProductA : Product
{
    //实现业务方法
    public override void MethodDiff()
    {
        //业务方法的实现
    }
}
class Factory
{
    //静态工厂方法
    public static Product GetProduct(string arg)
    {
        Product product = null;
        if (arg.Equals("A"))
        {
            product = new ConcreteProductA();
            //初始化设置product
        }
        else if (arg.Equals("B"))
        {
            product = new ConcreteProductB();
            //初始化设置product
        }
        return product;
    }
}
class Program
{
    static void Main(string[] args)
    {
        Product product;
        product = Factory.GetProduct("A"); //通过工厂类创建产品对象
        product.MethodSame();
        product.MethodDiff();
    }
}

 

【2016-10-17】【坚持学习】【Day8】【简单工厂模式】