728x90
서비스
토폴로지 및 인벤토리 시스템은 네트워크 자산의 가상화와 관리에 대한 것이므로 사용자가 이러한 네트 워크 자산의 컬렉션을 처리할 수 있게 해야 한다. 이를 수행하는 방법 중 하나는 서비스를 이용하는 것이 다. 서비스를 통해 시스템 엔티티와 값 객체를 처리하기 위한 동작을 정의할 수 있다.
라우터 서비스
앞에서 Router , CoreRouter , EdgeRouter 엔티티를 구현할 때 라우터 컬렉션을 필터링하는 프레디케이 트를 반환하는 메서드도 작성했다. 도메인 서비스를 사용하면 다음과 같이 그러한 컬렉션을 필터링하는 다음과 같은 프레디케이트를 사용할 수 있다.
package dev.davivieira.topologyinventory.domain.service;
import dev.davivieira.topologyinventory.domain.entity.Equipment;
import dev.davivieira.topologyinventory.domain.entity.Router;
import dev.davivieira.topologyinventory.domain.vo.Id;
import java.util.List;
import java.util.Map;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class RouterService {
public static List<Router> filterAndRetrieveRouter(List<Router> routers,Predicate<Equipment> routerPredicate){ return routers .stream()
.filter(routerPredicate) .collect(Collectors.<Router>toList());
}
public static Router findById(Map<Id,Router> routers, Id id){
return routers.get(id);
}
}
filterAndRetrieveRouter 메서드에서는 라우터 리스트와 해당 리스트를 필터링하기 위한 프레디케이트를 파라미터로 전달한다. 그다음, Id 타입의 매개변수를 사용해 라우터를 조회하는 findById 메서드를 정의 한다.
'Programming > 기타' 카테고리의 다른 글
Netflix 서버 API의 GraphQL로의 이관 여정 (0) | 2023.11.03 |
---|---|
Functional Programming model 이 대세가 되고 있다. (0) | 2023.11.01 |
핵사고날 아키텍처의 설계와 구현 - 어댑터의 이해 (0) | 2023.10.25 |
핵사고날 아키텍처의 설계와 구현 - 유스케이스 작성 방법 (0) | 2023.10.25 |
핵사고날 아키텍처의 설계와 구현 - 왜 핵사고날 아키텍처인가? (0) | 2023.10.24 |