Я делаю программу атаки по времени умножения, которая в настоящее время находится на очень ранней стадии. Я разделил его на 4 класса. MainApp , которая инициализирует другие классы и устанавливает JFrames. Настройки , который отображает экран, на котором люди выбирают, какие цифры проверять. MainWindow , где будут отображаться числа и где пользователь отвечает. Мой последний класс - Рассчитайте , где задаются вопросы и ответы. Моя проблема в том, что Рассчитать потребности, чьи флажки установлены из Настройки . Рассчитать необходимо знать, когда пользователь завершит изменение Настройки . MainWindow нужно, какие числа отображать из Вычислить . Нормально ли иметь такой большой круг занятий, или моя классовая организация не права? И поскольку Java передается по значению, не будет ли каждый класс предоставлять копию другого класса только для копии массива из 12 логических выражений, используя удвоенную память? Например. Если для Calculate требуется 10 МБ данных, это не даст MainWindow его копии в конструкторе (показанном ниже), что приведет к увеличению на 10 МБ ОЗУ, просто для получения 12 биты данных?
public MainWindow(Calculate calc) {
super("Main Window");
// Display Window
pnlMaster = new JPanel(new BorderLayout());
pnlLabels = CreateLabelArea();
pnlButtons = CreateButtonArea();
pnlMaster.add(pnlLabels, BorderLayout.CENTER);
pnlMaster.add(pnlButtons, BorderLayout.SOUTH);
this.getContentPane().add(pnlMaster);
// Handler
cHandler handler = new cHandler();
btnNext.addActionListener(handler);
btnQuit.addActionListener(handler);
txtAnswer.addActionListener(handler);
// Get Calculate class
this.calc = calc;
}