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