Я унаследовал следующий код:
(Некоторые имена изменены, чтобы защитить невинных.)
package foo.bar.baz;
import javax.swing.JPanel;
//Main panel in the GUI
class DemoRootPanel extends JPanel {
private final MainGUIClass demo;
DemoRootPanel(MainGUIClass demo) {
super();
this.demo = demo;
}
public MainGUIClass getDragAndDropPanelsDemo() {
return demo;
}
}
Я не сразу понял, почему это важно, поэтому пробежался по дереву исходного кода, чтобы увидеть, как оно используется. Это все результаты:
$ ack -i rootpanel
DemoRootPanel.java
5:class DemoRootPanel extends JPanel {
8: DemoRootPanel(MainGUIClass demo) {
MainGUIClass.java
70: private final DemoRootPanel rootPanel;
124: rootPanel = new DemoRootPanel(MainGUIClass.this);
821: containerPanels.add(new ContainerPanel(rootPanel));
846: containerPanels.add(new ContainerPanel(rootPanel));
1777: ContainerPanel newContainer = new ContainerPanel(rootPanel);
ContainerPanel.java
30: DemoRootPanel rootPanel;
49: public ContainerPanel(DemoRootPanel rootPanel) {
51: this.rootPanel = rootPanel;
и
$ ack getDragAndDropPanelsDemo
DemoRootPanel.java
13: public PileSortGUI getDragAndDropPanelsDemo() {
Так что, насколько я вижу, это совершенно не нужно. Но это моя первая работа, я еще не учился в колледже, и так далее, поэтому мне интересно, не важна ли для меня какая-то идиома, * незнакомая для меня.
PS - Я тоже относительно новичок в SO. Я считаю, что на этот вопрос можно ответить однозначно, но он кажется менее техническим, чем обычно. Если это не хорошо, дайте мне знать, и я сниму это. (Или просто мод это: P)