设计模式(二)、工厂模式--简单工厂模式

简单工厂模式:又叫做静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类的实例。

需要注意的是:简单工厂模式属于创建型模式,但不属于23种GOF设计模式之一 

该模式主要有以下几个模块构成:

具体说明结合代码,如下:

代码中主要是有一个cake接父类,两个实现类,一个工厂类

cake:父类。

/**
 * 蛋糕类

 */
public class Cake {
}

两个实现类:

/**
 * 苹果蛋糕
 */
public class AppleCake extends Cake{
    public AppleCake(){
        System.out.println("创建了苹果蛋糕实例");
    }
}
public class BananaCake extends Cake{
    public BananaCake(){
        System.out.println("创建了香蕉蛋糕实例");
    }
}

factory:该类提供对外调用的方法,方法中判断具体创建哪一个对象。

/**
 * 蛋糕工厂

 */
public class CakeFactory {

    public Cake createCake(String type){
        if("apple".equals(type)){
            return new AppleCake();
        }else if("banana".equals(type)){
            return new BananaCake();
        }else {
            return null;
        }
    }
}

 该设计模式的优点显而易见:只要传入正确的参数,就能创建对象,不需要关心怎么创建的

但缺点也很明显:如果我要创建一个新的对象,比如:巧克力蛋糕,就需要在factory类的createCake方法中添加一段代码。违反了开闭原则(一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方))。

你可能感兴趣的:(设计模式,设计模式,简单工厂模式)