gpt4 book ai didi

java - 不同领域的设计模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:32 24 4
gpt4 key购买 nike

我正在编写一个目录解析器实用程序,它会扫描不同目录以查找不同类型的文件。

现在,一个简单的实现促使我执行以下操作。有一个要解析的目录列表,遍历它们并将其传递给实际执行文件 I/O 和其他逻辑并返回结果的方法。

List<Dir> dirList;
//loop over the list and call parseDirecotry()
parseDirectory(Dir dirToParse){
//do file io
if (filename.matches("pattern"){
//proceed)
}
}

扫描的每个目录都需要我过滤掉某些文件。所以现在
对于某些目录,匹配模式会有所不同,现在要么我可以根据 if else 逻辑中的目录类型继续添加匹配模式。或者我可以将模式取出,使其成为 Dir 对象的一部分,使其抽象化,让特定的目录实现持有特定的匹配模式。

这样我就不必在每次扫描新目录时都使用 parseDirectory 方法。

问题是:是否有一些我可以在这里利用的设计模式?您对上述程序接口(interface)方式有何看法?您认为将 parseDirectory() 方法也移至抽象目录类是否有意义?

最佳答案

我不认为将文件名搜索模式作为 Dir 的一部分是一个好的设计。但是,封装 DirPatternFileSearch 对象可能是一个不错的设计。

另一件需要考虑的事情是,Apache Commons FileUtilslistFiles 方法中使用 IOFileFilter 实例提供了这种功能,例如 正则文件过滤器。您可以创建一个类,为 Dir 包装一个 IOFileFilter 并为文件名包装一个 RegexFileFilter

关于java - 不同领域的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7805598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com