但是在这个抽象工厂类中也就是是定义了每个产品创建的方法返回的接口,比如
FactoryDB{
public A getDB();
public B getDB2();
...
}
我在想,每个具体产品类里继承他,跟不继承他,有什么区别,不继承的时候每个产品的工厂里还是返回A或B这类接口,继承了还是返回这个,我实在想不出抽象工厂好在哪里,请指点。
public A getDB();
public B getDB2();
...
}
我在想,每个具体产品类里继承他,跟不继承他,有什么区别,不继承的时候每个产品的工厂里还是返回A或B这类接口,继承了还是返回这个,我实在想不出抽象工厂好在哪里,请指点。
public ICar getClass(String str)
{
if(str.equals("big"))
return new bigcar();
else if(str.equals("small"))
{
return new smallcar();
}
else ....
}
}
这样没有抽象工厂也一样的啊,如果还有其他产品,如果水果,。。。那么我也像上面一样建立工厂,接口一样能实现,也没有用到抽象工厂啊。那有了抽象工厂的好处又是什么呢。
那么我如果还想加入其他产品的话,我不仅要改变这类,还要改变其他继承这类的工厂。等等。。不是很麻烦。。??
如果你的接口设计具有一定抽象性,增加其它产品只是增加子类而已。
另外, 在设计模式中 消除判断语句 的模式有: State, Visitor. 当然严格来说, 我觉得很多模式都可以做到这一点.