【发布时间】:2017-04-15 17:03:49
【问题描述】:
基本上我需要有一个灵活的设计来处理。我在想这样的事情:
- 拥有一个接口
DataProcessor,然后拥有不同类型的具体类,例如CSVDataProcessor,FTPDataProcessor,CloudDataProcessor。 - 所有 DataProcessor 类都将实现在
DataProcessor接口上定义的方法process()
我的问题是:
如果每个具体类需要不同的参数来执行process() 方法,那么最好的设计应该是什么。例如,FTPDataProcessor 需要文件、主机、端口等参数 - CSVDataProcessor 需要文件位置,架构 - CloudDataProcessor 需要端点服务、用户、密码??
我的第一个想法是,使用构造函数将具体要求传递给每个具体的类,但是如果需要的参数很多怎么办?
未来会添加更多DataProcessor的具体实现,这就是为什么我想从一开始就设计一个非常灵活的设计来实现它。
【问题讨论】:
-
我希望我的答案是你想要的?
-
正如您所提到的,构造函数必须采用适当的参数,这些参数可以存储在实例变量中。但是如果有很多参数,实现一个builder来一个一个地接受它们并构造对象。您可以改为实现一个可以创建和返回对象的 DataProcessorFactory。没有单一的“最佳”方法,每种方法都有一定的优点。
-
每个应用程序只需要一个
DataProcessor还是多个?
标签: java object design-patterns interface