如何建模Document类?

Dar*_*arf 2 c# design-patterns

我正在使用文档类.第一次,它是使用New(),Open(),Save()等方法的公共文件.

New()和Open()返回一个IDocument.保存不会返回任何内容.如上图所示.

在此输入图像描述

在我的程序中,它必须使用xml或zip文件扩展名.对于xml文件,有任何问题,所有方法都适用于它.但我有zip文件的问题.我打算这样做,当程序执行Open()时,从zip中提取所有xml文件并返回所有文件.但是我的Open()只返回一个文档.

我打算创建另一个名为CanExtract()的属性,但也许这不是一个好主意.我只想创造一个好的设计并且可以理解.

Nic*_*ick 5

更改您的Open()函数以返回IEnumerable的IDocument:

public IEnumerable<IDocument> Open()
Run Code Online (Sandbox Code Playgroud)

代替

public IDocument Open()
Run Code Online (Sandbox Code Playgroud)

然后当你打开一个xml文件时,它会返回一个包含1个IDocument的IEnumerable,你可以使用它.当您打开zip文件时,它会将zip中的所有文件作为IEnumerable中的IDocuments返回.