Подсчет созданных экземпляров без статики

Задумался как реализовать подсчет экземпляров классов, для каждого отдельно разумеется, без использования статических переменных. Задача проста: создаём класс, создаём экземпляр класса, инкрементим переменную (или каким то другим способом). На учебе это делалось статической переменной, которая инкрементилась в конструкторе, но мне кажется это неправильный подход. Какая логика реализации этого на чистом ООП подходе? Спасибо


Ответы (1 шт):

Автор решения: Saidolim

Есть много вариантов

  1. Статическая переменная это тоже ООП. Только там нет группировки объектов класса

  2. Есть вариант использовать singleton. Создается класс для подсчета объектов. И у конструктора можете вызвать singleton класс (другой класс) и там делаете инкремент. Таким образом вы можете группировать ваши объекты из одного того же класса

public class SingleObject {

   private static SingleObject instance = new SingleObject();
   private AtomicInteger counter = new AtomicInteger(0);

   private SingleObject(){}

   public static SingleObject getInstance(){
      counter.increment();
      return instance;
   }

}
→ Ссылка