객체 생성 시점

2015-04-30 12:07
  • 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

2015-05-02 15:33

코드만 보면 vieweroption 객체의 data 를 set하기 위한 viewer 가 필요한데, 이 viewer가 vieweroption에 의존하고 있네요;; 근데 또 그 vieweroption 의 역할은 단순히 somconfigurationA(), someconfigurationB() 를 data 로 set 하기 위한 거구요.

ViewerOption과 Viewer를 분리하려다가 저렇게 된 것 같은데, 되리어 좀 꼬인거 같네요. ViewerOption에서 Viewer 객체에 의존이 심한거 같습니다.

네이밍에서도 ViewerOption은 Viewer에 종속하는 듯 싶은데, Viewer는 ViewerOption의 데이터만 필요로 하는 것 같구요.

inner class, 혹은 nested class 를 사용하심은 어떨까요?

의견 추가하기

연관태그

← 목록으로