使用类中的方法

本文关键字:方法 | 更新日期: 2023-09-27 18:15:34

我有两个类。让它们是目录和文件为例。有我自己的自定义类,不是。net框架的一部分。因此,目录有标题字段和文件列表。文件也有几个字段

我应该把按目录标题返回文件列表的方法放在哪里,例如:在目录类还是在文件类?

。以下哪个更好:

public List<Files> Directory.GetFiles(string directoryTitle){...}
public List<Files> File.GetFilesByDirectory(string directoryTitle){...}

,为什么?

使用类中的方法

两个想法:

首先,目录知道如何列出文件,所以它应该放在那里。

第二,尽量坚持使用返回类型的接口——IList而不是List。这为返回不同类型的列表和单元测试提供了更大的灵活性。

我想先说更好

public List<Files> Directory.GetFiles(string directoryTitle){...} 

由于File本身不应该知道它的位置,而Directory知道它包含哪些文件。

您实际放置它们的位置是您自己的特权,但我认为在这个实例中使用第一个版本Directory.GetFiles在语义上更合理。NET框架实际上公开了一个Directory类,您可以使用它作为示例,其中包含这样一个方法。

除此之外,考虑到目录实例已经包含了一个已知文件列表,这样做似乎也有点违反直觉。

我个人会放弃这两个类,并创建第三个类来完成工作,从而最大化代码重用的机会。叫它DirectoryFileFinder或类似的东西。