같은 인터페이스를 구현한 객체의 Properties 들이 다르다면?
새밝
안녕하세요.. ^^;
UI 를 짜다가 공통화 하는 부분에 직면하여.. 질문을 좀 드리려구 합니다.
Tree 와 Table 을 같은 다건의 아이템을 표현하기 위한 객체 로, 동일한 interface 의 구현체로 구성을 하고 싶은데..
내부적인 구성이야 그렇다 치고, 공통속성들을 뽑아내서 충분히 활용하기가 상당히 힘든 상태입니다.
결정적으로, 이미 설정된 초기데이터를 각각의 구현에 맡겨 이용하는데는 아무 무리가 없지만,
실제로 각각 다른 속성들을 초기화 해주는 행위 자체가 구현에 의존되어야 할 것 같아서 그것이 걱정입니다.
예를 들어, Tree.initialize(ComponentId, KeyType, TextType) 형태라고 하면
Table.initialize(ComponentId, Column1Type, Column2Type.... ) 와 같이 둘 사이에 공통점을 전혀 찾을수 없는 부분들이 필연적으로 발생한다는 것입니다.
또한, Tree, Table 에 해당하는 구상객체들은 Factory 를 통해 생성되어지게 하고 있어, 클라이언트는 구상객체에 전혀 의존이 없어야 하기 때문에, 구현을 각자 가져가는 것도 무리입니다.
이런 경우에, 좀더 제너릭한 방법으로
initialize(Object[] args) 와 같은 인터페이스를 정의할 수도 있겠지만, 구상클래스를 이용하는 데에 너무 가시적이지 않아 어떤 구현 형태로 가져가야 할지 모르겠습니다.
혹시 이런 경우에 대한 solution 이 나와있는 책이나 논문 같은 것이 있으면 인용 혹은 추천 좀 부탁드리겠습니다..