在 java 中工作,我想简化我正在使用的绘图函数(多边形创建器)。通常,当您创建多边形时,您会这样做:
Polygon mypoly = new Polygon();
mypoly.addPoint(x1, y1);
mypoly.addPoint(x2, y2);
mypoly.addPoint(x3, y3);
Draw.fillPolygon(g, mypoly, Color.blue);
我想使用图像映射器自动给我坐标,这样我就可以将它们复制粘贴到我自己的函数中。
myCommand(x1, y1, x2, y2, x3, y3);
这些中的每一个都将进入顶部的多边形命令。我面临的问题是,当创建 mypoly 时,它如何知道要添加多少个点以及将它们放在哪里?
我试图让 myCommand
在我添加参数时自动添加点,并且每个点都与原始多边形创建方法的 x、y 相对应。
最佳答案
听起来您需要使用 builder图案。在伪代码中:
PolygonBuilder pb = new PolygonBuilder();
pb.addPoint(1,1);
pb.addPoint(1,2);
// etc...
Polygon p = pb.newPolygon();
所以我们的想法是,您为构建器提供一组点,它会为您生成合适的多边形。建筑商通常设计有 fluent interface .请注意,构建器可以像工厂一样工作,并向您返回 Polygon
的适当子类(正方形、三角形、五边形等,如果您愿意的话)。
请注意,您可以使用 Java varargs mechanism 提供一个接受可变数量参数的方法。 .例如
public void addPoints(Integer... args) {
// and iterate here
}
您可能希望创建一个 Point
对象来一起定义 x/y 坐标。否则,上面的代码必须检查偶数个参数,并且这些参数不会捆绑在一起。
关于java - 使用可变数量的参数简化 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992148/