1 简单工厂模式
- 定义一个类来创建其他类的实例,被创建类的实例具有一个公共基类。
public class BaseA{}
public class BaseA1:BaseA{}
public class BaseA2:BaseA{}
public class Factory
{
public BaseA createBaseA(type)
{
switch(type)
{
case A:
return new BaseA1();
break;
case B:
return new BaseA2();
break;
}
}
}
2 工厂方法模式
- 定义一个接口,让接口的子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
public class BaseA{}
public class BaseA1:BaseA{}
public class BaseA2:BaseA{}
public interface IFactory
{
BaseA createBaseA();
}
public class BaseA1Factory:IFactory
{
public BaseA createBaseA()
{
return new BaseA1();
}
}
public class BaseA2Factory:IFactory
{
public BaseA createBase()
{
return new BaseA2();
}
}
3 抽象工厂模式
- 提供一个创建产品的接口来负责创建相关或依赖的对象,而不具体明确指定具体类,抽象工厂允许客户使用抽象的接口来创建一组相关产品,而不需要知道或关心实际生产出的具体产品是什么。
public class BaseA{}
public class BaseA1:BaseA{}
public class BaseA2:BaseA{}
public class BaseB{}
public class BaseB1:BaseB{}
public class BaseB2:BaseB{}
public interface IFactory
{
BaseA createBaseA();
BaseB createBaseB();
}
public class Factory1 : IFactory
{
public BaseA createBaseA()
{
return new BaseA1();
}
public BaseB createBaseB()
{
return new BaseB1();
}
}
public class Factory2 : IFactory
{
public BaseA createBaseA()
{
return new BaseA2();
}
public BaseB createBaseB()
{
return new BaseB2();
}
}