gpt4 book ai didi

java - DAOFactory 自动类型类型转换。 java

转载 作者:行者123 更新时间:2023-11-30 07:24:50 25 4
gpt4 key购买 nike

我有一个 DAOFactory,它返回一个特定的 dao

public class DAOFactory {

public static final int DAO1 = 1;
public static final int DAO2 = 2;

public static Object getDao(int dao) {
switch (dao) {
case DAO1:
return new Dao1();
case DAO2:
return new Dao2();
}
return null;
}
}

道是

abstract class GenericDao<E, ID extends Serializable> implements
GenericDaoInterface<E, ID>

所以它看起来像:

public class Dao1 extends GenericDao<Dao1, Integer>{
....
}

如果我创建新的 dao。我必须进行类型转换。

Dao1 dao = (Dao1) DAOFactory.getDao(DAOFactory.DAO1);

是否可以进行自动类型转换,或者最好在 DAOFactory 中创建方法来调用特定的 dao ?例如。 public static Dao1 getDao1()

最佳答案

创建一个 IGenericDao 接口(interface)并在 GenericDao 上实现它,工厂必须返回 IGenericDao 接口(interface),通过这种方式你可以使用所有 Dao 的通用行为或在需要时转换为特定类型,使用 Class 而不是 int 参数到工厂方法。

公共(public)静态 IGenericDao getDao(类)

另一个只使用一种方法的原因是,在未来的实现中,您可以使用反射实现工厂并动态返回正确的类型,并且您不需要更改工厂的所有客户端。

关于java - DAOFactory 自动类型类型转换。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11246370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com