Design patterns 设计一个文件系统

Design patterns 设计一个文件系统,design-patterns,filesystems,Design Patterns,Filesystems,设计文件系统时需要创建哪些类。在设计文件系统时应该使用哪种设计模式。如果您真的想在设计文件系统时应用设计模式列表,您应该考虑 用于对目录/文件进行建模 用于允许将其他属性(以及可能的行为)关联到文件系统节点 用于以不同方式遍历文件系统 用于创建具有不同后端的文件系统节点(例如,基于磁盘的文件系统、基于内存的文件系统或远程文件系统) 我认为这种尝试应用所有模式的通用方法是错误的,但是,像这样过度设计软件是很容易的。设计模式的关键洞察是认识到什么时候不应该应用模式。听起来像是家庭作业。但是,请至

设计文件系统时需要创建哪些类。在设计文件系统时应该使用哪种设计模式。

如果您真的想在设计文件系统时应用设计模式列表,您应该考虑

  • 用于对目录/文件进行建模
  • 用于允许将其他属性(以及可能的行为)关联到文件系统节点
  • 用于以不同方式遍历文件系统
  • 用于创建具有不同后端的文件系统节点(例如,基于磁盘的文件系统、基于内存的文件系统或远程文件系统)

我认为这种尝试应用所有模式的通用方法是错误的,但是,像这样过度设计软件是很容易的。设计模式的关键洞察是认识到什么时候不应该应用模式。

听起来像是家庭作业。但是,请至少查看以下模式:

  • (文件/目录)
  • (符号链接)
  • (穿过FS)

您还应该在google上搜索“文件系统设计模式”,以找到许多示例。最后,读一篇好文章。

作为家庭作业没什么错吧?@Sergi Papaseit:没什么错,我刚刚添加了正确的标签。嗨,欢迎来到stackoverflow.com!请注意,本网站是为特定问题提供特定答案的。你的问题太模糊了,没有一个有意义的答案。请对其进行编辑以更改此设置;否则它很快就会关闭。@Sergi:阅读关于家庭作业问题的内容。@Sergi:我不想让人觉得问家庭作业问题是错误的。我只是不确定是否应该使用家庭作业标签。回答得很好。实际上,我认为将文件夹作为复合对象(将有叶子)和文件作为叶子对象是有意义的。但我无法说明如何在这里使用decorator和iterator,我无法获得任何好的链接,在这里我可以看到介绍链接的好示例pus-1