У меня есть иерархия классов, где, скажем, класс ICommon находится в корне.У меня есть отдельные реализации репозиториев, чтобы манипулировать объектами, принадлежащими на каждом уровне в этой иерархии.
interface IRepository<T extends ICommon> {
public void createOrUpdate(T toCreate);
}
Теперь я хочу сохранить карту классов против их репозиториев.Это та часть, которую я не могу понять.
Я попробовал это, и это работает, но я не думаю, что это правильное представление.
private Map<Class<? extends ICommon>, IRepository<? extends ICommon>> repoMap = new
HashMap<Class<? extends ICommon>, IRepository<? extends ICommon>>();
Позже клиенты называют этометод для получения соответствующего экземпляра хранилища.
public <T extends ICommon> IRepository<T> getRepository(Class<T> clazz) {
return (IRepository<T>) repoMap.get(clazz);
}