Я разрабатываю MineSweeper . В этом у меня есть 3 пакета. 1.frontEnd 2.backEnd 3.mineSweeperControl.
mineSweeperControl содержит класс ActionSplicer , который реализует ActionListener.In frontEnd У меня есть массив JBUTTONS и массив ActionSplicer объектов , такой что splicerobj [i] [j] прослушивает кнопку [i] [j]. (однозначное соответствие)
backEnd содержит массив объектов, таких как объект [i] [j] имеет подробности фона кнопки [i] [j] , такие как MineValue, isCellEmpty, isCellFlagged и т. Д. ...
Метод doBackgroundAction (i, j) {..} определен в классе BackEndManager .
В actionPerformed из ActionSplicer я вызываю doBackgroundAction (i, j) , чтобы любое изменение на переднем плане также влияло на фон.
Где моя проблема?
doBackGroundAction (i, j) должно быть общедоступным, так как оно вызывается
в другой упаковке.
Но я не хочу, чтобы какой-либо метод был общедоступным, поскольку он может снизить гибкость, и тогда любой человек может изменить значения атрибутов.
Я не могу расширить класс BackEndManager, так как я создаю массив объектов ActionSplicer в frontEnd.
Следовательно, мне нужно какое-то руководство по объявлению doBackGroundAction (i, j).
Правильный ли способ объявить методы публичными в какой-то неизбежной ситуации?
Или Как я могу изменить свой дизайн, чтобы сохранить метод с видимостью по умолчанию.