Как я могу уйти от статического метода, который либо лезет в пул, либо создает объект?
В общем, есть перечень классов, которые имеют приватный конструктор и геттеры наружу.
Объект создается через статический метод Get, который внутри себя заглядывает в статический класс с пулом объектов и если нету свободного объекта, то создает новый и проводит некоторую инициализацию и возвращает этот объект, а если он берется из пула, то какие-то поля перезаписываются и возвращается этот готовый для работы объект.
Я думал думал, как это организовать красивее и чтобы было равнозначно, но на ум ничего не пришло.
Под равнозначностью я имею ввиду, что объект напоминает структуру, где в процессе жизни объект нельзя изменить (если только он не валяется в пуле свободных объектов), а Get возвращает новый объект.