Я бы посоветовал оставить это вне классов. В другом классе GrowingRegistry
, где вы можете иметь карту - Map<Class, Boolean>
. И так вы можете сделать:
GrowingRegistry.setAllGrown(AppleTree.class, true);
Еще лучше, вы можете реализовать интерфейс Tree
, который, например, определяет getTreeType()
, и иметь карту Map<TreeType, Boolean>
, где TreeType
- это перечисление. Итак:
GrowingRegistry.setAllGrown(TreeType.APPLE, true);
Чтобы продолжить, у вас может быть GardenProperties
объект, который содержит все свойства для "сада".
И, как я уже упоминал, сад - все проблемы возникают из-за того, что вы хотите отслеживать все экземпляры объектов. И это вы их создаете, не так ли? Таким образом, вы можете поместить все экземпляры в свои коллекции. Например:
Garden garden = new Garden();
garden.add(new AppleTreeImpl());
garden.add(new CherryTreeImpl());
Там вы можете хранить экземпляры в List
или Map
, а также использовать сад для хранения всех свойств.