工厂模式之——简单工厂模式
原理:
在工厂类中,通过多态,实例出子类对象,返回父类。客户端只依赖父类和工厂类,不依赖子类;但需要知道所有子类,以决定实例化哪个子类对象。
举例:水果工厂
(父类)水果类:
Class Fruit
{
。。。
}
(子类)苹果类:
Class Apple : Fruit
{
。。。
}
(子类)草莓类:
Class Strawberry : Fruit
{
。。。
}
水果工厂类:
Class FruitFactory
{
//可生产水果类型
{
Apple ,
Strawberry ,
FruitEnd,
}EnumFruit;
//生产方法
}
客户端:
Fruit* CFruit = null;
CFruit = FruitFactory.CreateFruitFactory(Apple );//苹果对象生产完成
优点:封装类产品子类,当需要增加或者修改产品只需要对子类进行增加或者修改,同时修改工厂类的switch-case就ok了。
缺点:违背开放-封闭原则,每次增改都需要修改工厂类。并且需要对客户暴露所有产品。