내 현재 프로젝트에는 애플리케이션 도메인의 핵심 개념을 다루는 몇 가지 데이터 클래스가 있습니다. 이제 우리 프로젝트의 일부 장소에서 구체적인 목표에 따라 다른 행동을 취해야합니다. 예 : JList는 객체 목록을 렌더링하는 작업을하지만 객체의 클래스에 따라 렌더링이 약간 다르기를 원합니다. 예 : 클래스 A의 객체는 클래스 B의 객체와 다르게 렌더링되어야하고 클래스 C는 완전히 다른 객체입니다.a로 구성된 공장. 객체의 클래스 - 어떻게 멋지게 할 것인가?
우리는 전략 클래스에서 동작을 캡슐화 한 다음 렌더링 될 객체에 적합한 클래스를 반환하는 팩토리를 갖습니다. 클라이언트 관점에서 볼 때, 괜찮습니다. 우리가 지금까지 가지고 올 수있는 모든 때문에 매우 추한 얻을 공장의 관점에서 지금
는 이미 인스턴스화 된 객체의 풀,지도도 작동합니다, 지금if (obj instanceof classA) return strategyA;
else if (obj instanceof classB) return strategyB;
...
같은 물건입니다 . 그러나 팩토리가 실제로 새 객체를 만들어야하는 경우, 우리는지도에 적합한 전략을 반환하는 팩토리/전략 객체의 다른 레이어를 해당 맵에 배치해야합니다.
이런 종류의 문제를 잘 처리하는 디자인 패턴이 있습니까?
너무 빨리 답변 해 주셔서 감사합니다. 당신의 생각은 흥미 롭지 만, 모델 일 뿐인 데이터 객체가 많은 프론트 엔드 코드를 수집한다는 단점이 있습니다. 이 코드는 이식성, 코드 크기, 테스트 등과 같은 일반적인 문제를 가지고 있습니다. – xmjx