我得变量grid_size和grid_subsize和类SudokuGrid,SudokuGame,SudokuSolver和SudokuGenerator。爪哇 - 更clases使用可变
Varibles首先在SudokuGrid中启动,之后我需要在剩下的类中使用它们。此刻,我在类的构造函数中传递参数等变量。例如:
public class Main extends Application {
public static void main (String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Sudoku");
int grid_size = 9;
int grid_subsize = 3;
SudokuGame sudokuGame = new SudokuGame(grid_size, grid_subsize);
}
}
public class SudokuGame {
public SudokuGame (int grid_size, int grid_subsize) {
SudokuGrid sudokuGrid = new SudokuGrid(grid_size, grid_subsize);
}
}
public class SudokuGrid {
private int grid_size;
private int grid_subsize;
public SudokuGrid (int grid_size, int grid_subsize) {
this.grid_size = grid_size;
this.grid_subsize = grid_subsize;
}
}
public class SudokuSolver {
private int grid_size;
private int grid_subsize;
public SudokuSolver (int grid_size, int grid_subsize) {
this.grid_size = grid_size;
this.grid_subsize = grid_subsize;
}
}
public class SudokuGenerator {
private int grid_size;
private int grid_subsize;
public SudokuGenerator(int grid_size, int grid_subsize) {
this.grid_size = grid_size;
this.grid_subsize = grid_subsize;
}
}
但它看起来不太好。
我的第二个想法是使用它们像public static变量,但很多人说公共静态变量是“EVIL”。
那么,在更多类中使用一个/多个变量的最佳方式是什么?
编辑:怎么样在SudokuGame类的公共静态方法grid_size和grid_subsize(我不需要每次创建新实例)创建。
是你的变量需要治疗吗?如果没有,你可以使用文件属性! – mir
它们应该在所有这些方面保持一致。我必须更多地了解这些类之间的关系。你应该是DRY:让这些类中的一个成为这些值的管家,并为所有其他客户提供读取权限。 – duffymo
@duffymo其实,我在FOR语句中使用这些变量。 –