Factory Method pattern里product的类型放在factory里好还是放在product里好
如以下代码
public class TreeFactory {
public static final int COMMON_DWTREE = 1;
public static final int GNBZ_DWTREE = 2;
...
public Tree newTree(int treeType) {
switch (treeType) {
case COMMON_DWTREE :
return new DwTree3();
case GNBZ_DWTREE :
return new DwTree4();
...
default :
return null;
}
}
}
调用代码
TreeFactory tf = new TreeFactory();
Tree tree = tf.newTree(TreeFactory.COMMON_DWTREE);
但COMMON_DWTREE和GNBZ_DWTREE似乎也可以放在类Tree中,如下
public class TreeFactory {
public Tree newTree(int treeType) {
switch (treeType) {
case Tree.COMMON_DWTREE :
return new DwTree3();
case Tree.GNBZ_DWTREE :
return new DwTree4();
...
default :
return null;
}
}
}
调用代码
TreeFactory tf = new TreeFactory();
Tree tree = tf.newTree(Tree.COMMON_DWTREE);
我看的书上用的是第一种,不知道两种方法哪种好些,还是没什么差别
初涉design pattern理论,请多帮忙