Ассоциация (простая стрелка): один класс ссылается на другой, каждый может пережить другой. Агрегация (полый ромб): «имеет слабое владение» — содержащийся объект может существовать независимо (у команды есть игроки, которые могут существовать без команды). Состав (заполненный ромб): «имеет сильную собственность» — жизненный цикл содержащегося объекта привязан к контейнеру (комнаты дома не переживают его).
Пример
@WebMvcTest(OrderController.class)classOrderControllerTest {
@Autowired MockMvc mockMvc;
@MockBean OrderService orderService; // real service NOT loaded - only the web layer is@Testvoidreturns404WhenOrderMissing()throws Exception {
given(orderService.findById(1L)).willThrow(newOrderNotFoundException(1L));
mockMvc.perform(get("/api/orders/1"))
.andExpect(status().isNotFound())
.andExpect(jsonPath("$.code").value("ORDER_NOT_FOUND"));
}
}
Итог
Ассоциация (простая стрелка): один класс ссылается на другой, каждый может пережить другой.
В чем разница между ассоциацией, агрегацией и композицией на диагра… · Sobeso