이 질문은 가치있는 객체 및 서비스를 기반으로하는 테스트 가능한 소프트웨어 디자인에 관한 것입니다.드물게 사용 된 서비스 - 생성자 대 메서드
다음은 데이터를 파일에 저장할 수있는 간단한 서비스 API의 예입니다.
saveToFile(data, fileName)
saveToUniqueFile(data, fileNameGenerator)
fileNameGenerator
은 임의의 파일 이름을 생성하는 서비스입니다. 데이터를 저장할 고유 한 파일 이름을 찾는 데 사용됩니다. 이 예에서는 fileNameGenerator
이 메소드 매개 변수로 주입됩니다. 대안의
하나는 API 단순화 할 생성자 주입입니다 :
saveToFile(data, fileName)
saveToUniqueFile(data)
확실히 모든 시간을 사용하지 않는 고유 한 파일에 저장을, 그래서는 필수 생성자 매개 변수가 안 보이는군요 필수. 반면에 서비스는 대개 데이터를 통해 통신하며 여기서 서비스가 제공되며 API가 약간 혼란 스럽습니다.
메서드 매개 변수로 서비스를 전달할 때 발생할 수있는 문제/불편한 점이 있습니까? 그런 상황에서 생성자 주입을 여전히 선호해야합니까?