클래스 PersonList
에는 AddNewPerson()
메서드가있어서 내부 목록에 새 Person
을 추가한다고 가정 해 봅시다. 그러나 Person
의 생성자에는 여러 매개 변수 (주로 의존하는 인터페이스)가 필요합니다. 즉, PersonList
은 의 생성자에 전달 된 매개 변수를 필요로합니다 (또는 어떻게 든 사용할 수 있음).실제 종속성이 명확하도록 생성자를 어떻게 리팩토링 할 수 있습니까?
PersonList
은 이러한 종속성을 직접 사용하지 않기 때문에이 배열은 코드 냄새처럼 보입니다. 그것은 단순히 다른 생성자에게 전달합니다. 이 클래스들을 어떻게 리팩토링하여 각 클래스에 대한 실제 의존성이 명확한 지 알 수 있습니까?
일부 코드를 표시하십시오 (최소한 클래스의 모양을 요약하십시오). PersonList는 서비스가 아닌 DTO 나 Model처럼 들리므로 종속성이 없어야하는 것처럼 들리므로 (올바른 방향을 의미 함). 그러나 우리가 다루고있는 것을 실제로 알지 못하는 경우에는 "리팩터링하는 법"을 말하는 사람은 거의 없을 것입니다. – NightOwl888
@ NightOwl888 나는 문제의 본질에 도달하기 위해 문제를 단순화 시켰지만, 나는 그것을 간소화했을 수있다. 제 실제의 경우이 클래스는 MVVM 응용 프로그램의보기 모델입니다. 'PersonListViewModel'은 새로운'PersonViewModel'을 생성하고 추가하는 메소드에 중계되는'AddCommand'를 가지고 있습니다. – redcurry