面试使用之设计模式
简单(静态工厂模式)
public class SimpleNoodlesFactory {
public static final int TYPE_LZ = 1;
public static final int TYPE_PM = 2;
public static final int TYPE_GK = 3;
public static INoodles createNoodles(int type) {
switch (type) {
case TYPE_LZ:
return new LzNoodles();
case TYPE_PM: r
eturn new PaoNoodles();
case TYPE_GK:
default: return new GankouNoodles(); }
}
}
public class GankouNoodles extends INoodles {
@Override public void desc() {
System.out.println("输出");
}
}
特点
1 它是一个具体的类,非接口 抽象类。有一个重要的create()方法,利用if或者 switch创建产品并返回。
2 create()方法通常是静态的,所以也称之为静态工厂。
缺点
1 扩展性差(我想增加一种面条,除了新增一个面条产品类,还需要修改工厂类方法)
2 不同的产品需要不同额外参数的时候 不支持