java怎么做领域设计_java-不同领域的设计模式

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

现在,一个简单的实现促使我执行以下操作.

拥有要解析的目录列表,将其循环,然后将其传递给实际执行文件I / O和其他逻辑并返回结果的方法.

List

//loop over the list and call parseDirecotry()

parseDirectory(Dir dirToParse){

//do file io

if (filename.matches("pattern"){

//proceed)

}

}

扫描的每个目录都需要我过滤掉某些文件.所以现在

对于具体目录,匹配模式将有所不同,现在我可以继续根据目录类型在其他逻辑中添加匹配模式.

要么

我可以将模式做成Dir对象的一部分,使其抽象,让特定的目录实现拥有特定的匹配模式.

这样,我不必每次扫描新目录时都需要触摸parseDirectory方法.

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

解决方法:

好吧,我会提出我的解决方案

1)创建一个名为IFileProcessor的接口,该接口具有processFile方法

2)创建特定于实现IFileProcessor的文档类型的单例类.因此,这些类将是DocFileProcessor,XLSFileProcessor等,并且每个类将具有自己的processFile API特定实现.

3)创建一个工厂类,例如FileProcessorFactory.它应该具有一个称为IFileProcessor getFileProcessor(String fileTypeExtension)的API.该API将以文件扩展名作为输入,并返回DocFileProcessor,XLSFileProcessor等输入doc,xls等.

4)在循环调用中,FileProcessorFactory的getFileProcessor为其提供输入.现在,在返回的实例上调用processFile.

具有这种设计可以将if-else的逻辑与Factor分离,从而使您的逻辑与文件类型无关.

标签:java,design-patterns

来源: https://codeday.me/bug/20191102/1988798.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值