如果给定对象列表 (files/folders) 及其作为字符串的路径,我如何将它们组织成正式的层次结构?

If given a list of objects (files/folders) and their paths as a string, how do I organize them into a formal hierarchy?

我有一个对象列表,可以是文件也可以是文件夹。它们都包含一个字符串形式的路径。我如何将它们分类为层次结构?如果我有一个可以保存文件夹和文件的文件夹对象和一个常规文件对象,使用对象列表及其路径,我如何将它们分类到文件夹和文件对象中?

提前致谢。

使用复合模式,您可以轻松表示。

您可以将 class ResourceFileFolder 作为 Resource.[=26 的子class =] 而分层概念将依赖于 Folder,它组成了一组 Resource,可以是 FileFolder
字符串路径和对物理资源字段的引用可以存储在 Resources 中,因为它们在两个子 class 中具有相同的表示。

更进一步,当您表示数据时,通常您还想操作它们,并且最好以简单统一的方式进行操作。
例如,当客户端想要对资源实例(文件夹或文件)执行常见操作时:创建、列出或删除资源等...如果他们可以操作单个界面,对他们来说会更简单。
复合模式允许它。
只需在基础 class (Ressource) 中声明常用操作,然后让 subclasses 定义所需的行为。 就这些了。