UML: ассоциация моделирования между классом и интерфейсом

99
12

У меня есть следующие классы и интерфейсы:

public interface IPersistentObject { }

public class PersistentObject implements IPersistentObject { }

public interface IPersistentObjectDAO { }

public class PersistentDAO implements IPersistentObjectDAO { }

public interface IService1 { }

public class Service1 implements IService1{

@Autowired
private IPersistentObjectDAO persistentDAO;
}

public interface IService2 { }

public class Service2 implements IService2 {

@Autowired
private Iservice1 service1;
}

public class Bean {

private IService2 service2 = JSFUtil.resolveBean("service2");
}

<bean name="service1" class="Service1"/>
<bean name="service2" class="Service2"/>

Мой вопрос: как мне моделировать эти ассоциации?

Если это поможет, я использую JSF, Spring и Hibernate

спросил(а) 2021-01-25T18:02:23+03:00 4 месяца, 2 недели назад
1
Решение
88

Если вы используете интерфейс, это означает, что ваша модель должна быть

JSF bean/inject - interface-> реализованный класс (DAO) → объект DB

Поэтому ваши компоненты JSF должны находить и вводить интерфейсы Spring.

Весенний сервис может быть отделен банкой, которую вы можете ввести в передний конец JSF.

в jsf

   @ManagedProperty("#{handlerService}")
private HandlerService handlerService = null;

весна

@Service("handlerService")
@Component
public class HandlerService {

@Autowired
private DomainService domainService;

ответил(а) 2021-01-25T18:02:23+03:00 4 месяца, 2 недели назад
45

Если ваша проблема - просто моделирование, просто посмотрите здесь: http://www.uml-diagrams.org/generalization.html Вам нужно указать FROM класса, реализующего TO interface. Например: "Service2" ---l> "IService2"

Если это что-то еще, уточните свой ответ.

ответил(а) 2021-01-25T18:02:23+03:00 4 месяца, 2 недели назад
45

Для интерфейсов отношение к его разработчикам называется "реализация", а не "обобщение".

И он идет от интерфейса к классу, который его реализует, см. Ниже.

Класс → Интерфейс

ответил(а) 2021-01-25T18:02:23+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема