如何在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) {...}
我目前正在尝试重构 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) {...}