Подсчет созданных экземпляров без статики
Задумался как реализовать подсчет экземпляров классов, для каждого отдельно разумеется, без использования статических переменных. Задача проста: создаём класс, создаём экземпляр класса, инкрементим переменную (или каким то другим способом). На учебе это делалось статической переменной, которая инкрементилась в конструкторе, но мне кажется это неправильный подход. Какая логика реализации этого на чистом ООП подходе? Спасибо
Ответы (1 шт):
Есть много вариантов
Статическая переменная это тоже ООП. Только там нет группировки объектов класса
Есть вариант использовать 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;
}
}