- 1 ViewerOption option = new ViewerOption();
- 2 option.setConfiguration(new SomeConfigurationA());
- 3 option.setConfiguration(new SomeConfigurationB());
- 4 Viewer viewer = Viewer(option);
- 5 option.setConfiguration(new ProblemConfiguration(viewer.getObjectA(), viewer.getObjectB()));
4번 라인에서 Viewer 가 생성되고 난 시점에서는 5번의 option은 무용지물인 상황인데, 5번을 3번 아래로 옮기자니 viewer의 인스턴스에서 접근가능한 특정 property가 필요한 상황인데, 적절한 방법이나 디자인패턴 있을까요?
1개의 의견 from SLiPP
코드만 보면 vieweroption 객체의 data 를 set하기 위한 viewer 가 필요한데, 이 viewer가 vieweroption에 의존하고 있네요;; 근데 또 그 vieweroption 의 역할은 단순히 somconfigurationA(), someconfigurationB() 를 data 로 set 하기 위한 거구요.
ViewerOption과 Viewer를 분리하려다가 저렇게 된 것 같은데, 되리어 좀 꼬인거 같네요. ViewerOption에서 Viewer 객체에 의존이 심한거 같습니다.
네이밍에서도 ViewerOption은 Viewer에 종속하는 듯 싶은데, Viewer는 ViewerOption의 데이터만 필요로 하는 것 같구요.
inner class, 혹은 nested class 를 사용하심은 어떨까요?
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.