类中的使用方法
问题描述:
我有两个类。例如让他们成为目录和文件。有我自己的自定义类,而不是.NET Framework的一部分。 所以,Directory有Title字段和文件列表。文件也有几个字段。类中的使用方法
我应该在哪里放置方法,它将按目录标题返回文件列表,例如,目录类或文件类中的 ?
即其中的这些好:
public List<Files> Directory.GetFiles(string directoryTitle){...}
public List<Files> File.GetFilesByDirectory(string directoryTitle){...}
,为什么?
答
两个想法:
第一,它是知道的上市文件的目录,因此,这就是应该住。
其次,尝试坚持接口为您的返回类型 - IList而不是列表。这为返回不同类型的列表和单元测试提供了更大的灵活性。
答
我想说的首先是更好
public List<Files> Directory.GetFiles(string directoryTitle){...}
由于文件所在本身应该不知道和目录是知道哪些文件包含。
答
你实际上把它们放在哪里是你自己的特权,但我会说在这个例子中使用第一个版本在语义上更合理:Directory.GetFiles
。 NET框架实际上公开了一个Directory
类,您可以使用它作为示例,包含此类方法。
考虑到目录实例已经包含一个已知文件列表,它似乎也会反其道而行之,反之亦然。
答
我会亲自离开这两个类,创建第三个类来完成最大化代码重用机会的工作。称它为DirectoryFileFinder或类似的东西。
它应该返回'IEnumerable'或'ReadOnlyCollection ',而不是'List '。 –
SLaks
[System.IO.Directory.GetFiles](http://msdn.microsoft.com/zh-cn/library/07wt70x2.aspx)有什么问题? – Groo
@格罗 - 这只是一个例子。我的意思是任何班级都有这种情况。 – Tannheuser