Я узнал, что внутренние классы должны использоваться, когда объект тесно связан с другим объектом. Таким образом, класс LinkedList может содержать внутренний класс Node, поскольку каждый Node существует только в LinkedList.
Я думаю о создании игры и рассматриваю создание объекта Map с двойным массивом Tiles, где каждый Tile является внутренним классом.
Но потом я подумал, что действительно, класс Map должен быть внутренним классом внутри класса Game.
Таким образом, мы имеем
class Game {
class Map {
Tile[][] grid;
class Tile {
...
}
...
}
class Unit {
...
}
class Player {
...
}
...
}
Однако это кажется чрезмерным, так как в результате получается только один массивный файл. Это проблема? Или я полностью недопонимаю точку внутренних классов?
Каковы факторы, которые следует учитывать при выборе того, чтобы ваш новый класс был внутренним или внешним, и если выбор является внутренним, когда внутренний класс должен быть static
?