使用无状态类来更改实体的状态

时间:2017-10-03 08:20:48

标签: c# entity separation-of-concerns stateless

我正在开发一个必须扫描文件夹,其子文件夹及其文件的应用程序,而我目前正在讨论在哪里实施无状态编程范例来扫描文件夹中的子文件夹/文件,或者不。我将分享一个简单的例子:

class UserFolder
{
    private int level;
    private String directoryPath;
    private List<UserFile> filesList;
    private List<UserFolder> subfolders;
}

这就是我想象的文件夹类,我省略了公共属性。

我要问的是,如果我通过这样的方法违反SOC规则和无状态编程范例:

public void ScanFolderForFiles()
    {
        ...
        filesList= new List<UserFile>();
        foreach (string fileName in Directory.GetFiles(directoryPath))
        {
            filesList.Add(new UserFile(fileName)); 
        }
        ...
    }

在像这样的无状态类中

class FolderScanner
{
    public void ScanFolderForFiles(UserFolder _userfolder)
    {
       //code, and save the data inside the _userfolder object
    }
}    

或者我应该将方法保留在UserFolder类中。

我知道我可能会让事情变得复杂,所以如果你有更好的建议,请随时写出来。

0 个答案:

没有答案