我正在创建一个按钮类,它自己处理输入和绘图;唯一需要定义的是位置以及按下按钮时会发生什么。
在这种情况下,拥有ButtonPressListener
界面并将其作为Button
构造函数中的参数更好,或者Button
是否应该是抽象的抽象方法pressed()
?
Button
生成的启动代码如下所示:
new Button(x,y,new ButtonPressListener(){
@Override
protected void pressed(){
// code
}
});
或
new Button(x,y){
@Override
protected void pressed(){
// code
}
};
此外,在其他类似的情况下,在两种方法之间进行选择时应该考虑什么?
感谢。
答案 0 :(得分:3)
我更喜欢听众。
Resons:
顺便说一句:您应该考虑使用setter,而不是构造函数的参数。这将允许创建没有监听器的按钮 - 或者定义多个监听器。另外参数有点难以读取然后设置,因为参数在java中没有名称。
答案 1 :(得分:1)
如果您正在尝试从这个项目中学习,您可以同时做两件事,并找出哪些更适合您。 Wenn你发现了,重构并抛弃了不太喜欢的选项。
创建Button.pressed()
的默认实现,如果设置,则调用侦听器实现的功能。提供两个构造函数,一个用于设置监听器,另一个用于设置监听器。
当然,这不是一个选项,其他人应使用此API。