减少传递给方法的参数数量

时间:2019-03-16 17:39:58

标签: java design-patterns

要求:我正在将图像从我们的系统转换为PNG格式。只要图像是CMYK编码或尺寸小于500 * 500(更多标准),图像转换就应该失败。每次运行后,应发送一封包含报告的电子邮件。该功能运行良好,正在重构报表生成器代码。我基本上是按照构建器模式来构建报告。以下是我的代码段:

ImageProcessor:

public String processImage(File imageToProcess, String name, String temp_location, String boxLocation, String id, ReportContent missingStyle, ReportContent missingImage, ReportContent unSupportedEncoding, ReportContent imageSize, List<String> missingStyleNames, List<String> missingImageNames, List<String> unSupportedEncodingNames, List<String> imageSizeNames) {
    // The code process an image and if an image fails then it add that failed image to appropriate report content object.
}

我从服务中调用上述方法,在其中创建ReportContent和List的实例。我想减少传递给此方法的参数数量。一个选项是代替单个ReportContent,我可以传递一份Report Content列表。这种方法的问题是,我还要从proessImage方法中调用其他方法,因此我需要将整个列表再次传递给该方法。我想使代码更具可读性并降低复杂性。如果需要,我很乐意提供更多代码片段。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果要使代码更具可读性,我建议最好创建一个ClassWrapper,并在其中放入带有所有这些方法的构造函数。这样,您只需要调用构造函数包装器即可,而不必多次使用相同的方法。