Q : 在简单工厂方法模式,工厂方法模式,与抽象工厂模式中,那个模式符合开闭原则?为什么?那个模式一般不符合开闭原则?或者那种情况下符合,那种情况下不符合。
A:首先简单工厂模式是不符合开闭原则的,开闭原则的定义为open for extension . close for modification. 对于已经写好的代码是不允许进行修改的,但是可以扩展已经写好的代码。简单工厂模式,使用的是一个静态的工厂场类。书写的代码如下图:
public static Product createObject(String type){
if(type == "A"){
return new ProductA();
}else if(type == "B"){
return new ProductB();
}
...
}
public interface Product {..}
public class ProductA implement Product{..}
public class ProductB implement Product{..}
class Client{
Main{
Product p = Creator.createObject(A);
p.doSome();
}
}
上面基本就是一个简单的工厂方法。可以看出,如果这个时候添加了一个