使用变量量简化Java方法
在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相对应
# 1 楼答案
为了扩展Brian Agnew的答案,可能还需要添加一个Point类,addPoints方法可以接受该类。它可以使从多边形中添加/删除点稍微容易一些
然后你可以有一个:
# 2 楼答案
我认为您可以使用一个接收varargs(
...
)的方法每个点都需要一个包装器:
方法可以是:
待命
对于draw:
# 3 楼答案
听起来你需要使用builder模式。在伪代码中:
我们的想法是,为构建器提供一组点,它会生成相应的多边形。构建器通常设计为fluent interface。请注意,构建器可以像工厂一样,返回
Polygon
的适当子类(正方形、三角形、五边形等,如果您愿意的话)请注意,您可以使用Java varargs mechanism提供一个接受可变数量参数的方法。e、 g
您可能希望创建一个
Point
对象来一起定义x/y坐标。否则,上述参数将必须检查偶数个参数,并且这些参数不会绑定在一起# 4 楼答案
您可以使用varargs并通过使用获取X和Y数组的constructor动态创建多边形
(代码未测试)
然后,您可以使用任意数量的点调用该方法
Polygon p = createPolygon(x1,y1,x2,y2,x3,y3);