2008-09-17 2 views
5

다른 파일 형식을 저장하고로드 할 때 사용할 수있는 패턴이 있습니까?다른 파일 형식으로 저장하고 쓰는 패턴

예를 들어 복잡한 클래스 계층 구조가 있지만 몇 가지 파일 형식을 지원하고 싶습니다.

전략 패턴에 대해 생각했지만 개체를 ​​저장하고로드하기 위해 개체의 모든 부분에 액세스해야하기 때문에 확신하지 못했습니다.

답변

2

Visitor Pattern을 사용할 수 있습니다. 방문자가 현재 처리중인 노드에 따라 다른 작업을 수행하여 계층을 반복 할 수 있습니다.

나쁜 소식 : 아마도 계층 구조의 맨 위에 가상 메소드를 추가하고 파생 클래스에서 가상 메소드를 다시 정의해야하며 방문자는 여전히 노드의 데이터에 액세스하지만 파일 형식을 분리합니다 다른 방문자 구현은 다른 방식으로 수집 된 데이터를 쓸 수 있기 때문입니다.

클래스 계층 구조 데이터를 숨기는 것이 필수 인 경우 memento pattern을 살펴보십시오. This article도 도움이 될 수 있습니다.

편집 : 링크 원래 Memento pattern article의 유품 패턴에 대한 문서

+0

귀하의 링크를 구글 캐시를 사용하여이 끊어집니다. 너 또 다른 좋은거야? –

+0

와우, 7 년 된; 나는 기사의 이름을 불렀다조차, 미안 –

+0

희소식은 google 시렁을 사용하여 그것을 찾아 냈다 : http://webcache.googleusercontent.com/search?q=cache:www.ondotnet.com/pub/a/dotnet/ 2002/09/09/memento.html –

1

작성자 패턴을 살펴볼 수 있습니다. GoF 97 페이지 ..

0

어쩌면 Template method pattern은?

하나의 수퍼 클래스는 클래스 계층 구조를 분해하는 방법을 알고 있지만 서브 클래스를 사용하여 실제로 유용하게 사용할 수 있습니다.

관련 문제