如何在Java中将长参数列表重构为参数对象?

How to refactor long parameter lists into a parameter object in Java?

我目前正在尝试重构 BufferedImage class 中的 getRGB、getSubimage 和 setRGB 方法。我是 Java 的新手,想编写好的代码;问题是我的参数列表变得很长并且给我带来了问题。我找到了参数对象作为解决方案,但是我正在努力实现它。

我能否得到如何使用参数对象改进以下方法的表示;

public void setRGB​(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)

好吧,根据您提供的信息,这并不多,您想要的很简单。所以,你应该将所有这些参数包装在一个 class 中(这个 class 应该遵循 JavaBeans 规范,你绝对应该阅读它,如果你还没有的话),像这样:

public class RGB {
    private int startX;
    private int startY;
    private int w;
    private int h;
    private int[] rgbArray;
    private int offset;
    private int scansize;

// getters and setters

}

然后,您的方法将只接收表示此 class:

的对象
     public void setRGB​(RGB rgb) {...}