我正在使用文档类。第一次,它是使用New(),Open(),Save()等方法的公共文件。
New()和Open()返回一个IDocument。保存不会返回任何内容。 如上图所示。
在我的程序中,它必须使用xml或zip文件扩展名。对于xml文件,有任何问题,所有方法都适用于它。但我有zip文件的问题。我计划这样做,当程序执行Open()时,从zip中提取所有xml文件并返回所有文件。但是我的Open()只返回一个文档。
我计划创建另一个名为CanExtract()的属性,但这可能不是一个好主意。我只是想创造一个好的设计并且可以理解。
答案 0 :(得分:5)
更改您的Open()函数以返回IDnumerable的IDocument:
public IEnumerable<IDocument> Open()
而不是
public IDocument Open()
然后当你打开一个xml文件时,它会返回一个包含1个IDocument的IEnumerable,你可以使用它。当你打开zip文件时,它会将zip中的所有文件作为IEnumerable中的IDocuments返回。
答案 1 :(得分:0)
我建议将您的返回属性更改为List。然后,无论是否返回1个或20个文件,您都可以使用相同的代码处理文档列表。
您还可以为创建和保存接受多个文件添加重载,如果使用这些重载,您可以执行自动压缩。