문서 클래스를 사용하고 있습니다. 처음에는 New(), Open(), Save()와 같은 메서드가있는 공용 파일을 사용했습니다.Document 클래스를 모델링하는 방법은 무엇입니까?
New() 및 Open()은 IDocument를 반환합니다. 저장하면 아무 것도 반환하지 않습니다. 위 그림에서 알 수 있듯이. 내 프로그램에서
, 그것은 XML 또는 zip 파일 확장자를 사용해야합니다. xml 파일에는 문제가 있지만 모든 메서드가 있습니다. 하지만 zip 파일에 문제가 있습니다. 프로그램에서 Open()을 실행하면 zip에서 모든 xml 파일을 추출하고 모든 파일을 반환 할 때이 작업을 수행하려고했습니다. 하지만 내 Open()은 문서 만 반환합니다.
CanExtract()라는 또 다른 속성을 만들 계획 이었지만 어쩌면 좋은 생각이 아닙니다. 나는 단지 좋은 디자인을 만들고 이해할 수 있기를 원합니다. 그런 다음
public IEnumerable<IDocument> Open()
대신
public IDocument Open()
을 당신이 XML을 열 때를 IEnumerable 1 IDocument를 포함하고 당신이 할 수있는 반환 파일 :
[System.IO.Packaging 네임 스페이스에있는 Open Packaging Convention (영문)] (http://msdn.microsoft.com/en-us/library/system.io.packaging.aspx)을 보았습니까? 이 두 상황을 상당히 잘 처리합니다. – user7116
@sixlettervariables 와우, 재미있을 것 같습니다. 그래서, 내가하고있는 일이 필요 없다고 생각하니? – Darf
나는 구걸하고, 빌리고, 훔치는 동료 야. 'System.IO.Packaging'을 직접 사용하는 것을 거부한다면, 그들의 모델이나 적어도 그들의 관용구를 채택 할 수 있습니다. – user7116