工厂方法模式
工厂方法模式定义了一个用于创建对象的接口,让子类决定实例化哪个类。 该模式允许类将实例化延迟到子类。
Product
即将使用工厂方法创建的对象(接口)。
ConcreteProduct
Product的实现。
Creator
声明工厂方法,返回Product类型的对象。 创建者也可以定义工厂方法的默认实现,它返回一个默认的ConcreteProduct对象。可以调用工厂方法来创建一个Product对象。
ConcreteCreator
重写工厂方法以返回一个ConcreteProduct的实例。
代码示例
public abstract class UserCreator
{
public abstract User Create();
}
public class NormaluserCreator : UserCreator
{
public override User Create()
{
return new Normaluser();
}
}
public class SuperuserCreator : UserCreator
{
public override User Create()
{
return new Superuser();
}
}
//---------------------------------------------------
UserCreator factory = new NormaluserCreator();
var nUser = factory.Create();
nUser.Read();
nUser.Write();
factory = new SuperuserCreator();
var sUser = factory.Create();
sUser.Read();
sUser.Write();
...