【发布时间】:2020-08-07 13:22:18
【问题描述】:
我会尽量详细。我有很多 DAO,我的服务需要根据我得到的密钥使用其中一个。比如——
if(key.equals("abc") {
obj = abcDAO.getOne(id);
} else if(key.equals("xyz") {
obj = xyzDAO.getOne(id);
}
对象是父类类型,abc、xyz..都是子类。
我的想法是创建一个Map<String, ParentCLass> 来获取对象,只需传递密钥而不是 If-else,这样就可以轻松添加以进行进一步更改。如果它是一个普通的类,我会将地图初始化为
Map<String, ParentClass> map.
map.put("abc", new Abc());
但由于 DAO 是接口并且需要 @Autowired 才能使用它们,我不知道如何继续。我是初学者。任何帮助表示赞赏。
【问题讨论】:
-
你可以使用多态性,检查这个exemple
标签: java spring spring-boot interface dao