今天,我正在制作一个教程,将按钮集成到一个基础构建的游戏引擎中。这是请求获胜的代码。
public class ButtonEvent{
private Window win;
public ButtonEvent(){
this.win = Window.getWindow();
}
/*Other methods*/
}
我观看了整个视频,但是那个上课的人从来没有提到他对他的Window类所做的事情。在那个视频中,他碰巧点击了窗口类,然后点击下一个课程,在那段时间,当我暂停视频时,我看到了他的getWindow()方法。我在下面写的。
public class Window extends Canvas{
public Window win; //I tried doing this
/*Other methods*/
public static Window getWindow(){
return win;
}
}
有人可以向我解释他是如何做到的吗?我知道这个问题有点模糊,但我必须与之合作。
谢谢!
答案 0 :(得分:1)
使用单例模式确保在整个应用程序中只创建并使用Window
的一个实例。请注意,单例被认为是“反模式”,这意味着通常有更好的方法,例如使用容器管理的对象(请参阅PicoContainer,Spring IoC等)。
public class Window {
private static Window INSTANCE = null;
public static Window getWindow() {
if (INSTANCE == null) {
INSTANCE = new Window();
}
return INSTANCE;
}
}
答案 1 :(得分:0)
更改
library(tidyverse)
distinct(tbl_, id) %>%
sample_n(nrow(.), replace = TRUE) %>%
pull(id) %>%
map_df( ~ tbl_ %>%
filter(id == .x)) %>%
arrange(id)
# A tibble: 6 x 2
# id dta
# <dbl> <int>
#1 1.00 1
#2 1.00 2
#3 1.00 1
#4 1.00 2
#5 3.00 5
#6 3.00 6
到
public Window win;
您将获得private static Window win = new Window();
的正确本地可见性以查看getWindow()
字段,并且将通过调用编译器插入的隐式空构造函数来初始化它(这是Window
)的分配。