Как лучше реализовать данную задачу с генератором случайных чисел?

Пример с книги Пример от меня №1 Пример от меня №2

На картинках выше представлены три способа реализации генератора случайных чисел от 11 до 99.

На рис. №1, реализация, которая была представлена в книге. Я не считаю, что данный способ является лучшей, так как приходится всё время, при вызове функции, создать новый экземпляр объекта Random — это негативно влияет на производительность. На рис. №2 и №3 отображены мои способы решения данной проблемы.

Какая из этого всего является наилучшим способом реализации данной задачи? Предложите, пожалуйста, свой вариант, который считаете лучшей. Мне важно узнать, как в таких случаях поступают.


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

Автор решения: Saint
    public class RandomGeneratorServiceImpl implements RandomGeneratorService {
    private static final Random r = new Random();

    private static final int MINIMUM_FACTOR = 11;
    private static final int MAXIMUM_FACTOR = 99;

    @Override
    public int generateRandomFactor() {
        return r.nextInt((MAXIMUM_FACTOR - MINIMUM_FACTOR + 1) - MINIMUM_FACTOR);
    }
}
→ Ссылка