c# - 如何建模 Document 类?

标签 c# design-patterns

我正在使用文档类。第一次是针对普通文件,使用New()、Open()、Save()等方法。

New() 和 Open() 返回一个 IDocument。保存不会返回任何内容。 正如您在上图中看到的。

enter image description here

在我的程序中,它必须使用 xml 或 zip 文件扩展名。对于xml文件有什么问题,所有的方法都可以解决。但我在 zip 文件方面遇到了问题。我打算这样做,当程序执行 Open() 时,从 zip 中提取所有 xml 文件并返回所有文件。但我的 Open() 只返回一个文档。

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

最佳答案

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

public IEnumerable<IDocument> Open()

而不是

public IDocument Open()

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

关于c# - 如何建模 Document 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8608534/

相关文章:

c# - 领域驱动设计——产品盘点,我该怎么做?

java - MVC模式中Main类的位置和职责

c# - 清除所选选项卡中所有文本框的文本

c# - 我怎样才能得到可用的带宽率?

c# - 为什么 'ref'和 'out'不支持多态?

c# - 变量未声明或从未分配

c# - 使用相同的安装程序从不同的应用程序设置不同的 CaSTLe Windsor 生活方式

android - 与 IntentService 具有相同优先级的多个工作线程?

c# - 静态方法和变量中的线程安全

javascript - ASP.NET 中通用容器的设计模式