Проверка источника класса, о котором вы упоминаете, похоже, указывает на то, что CloudFrontUrlSigner
- это просто класс utlity, демонстрирующий несколько общедоступных статических методов.Указанные методы являются публичными и статическими, по сути работают как служебные методы, которые принимают несколько аргументов, выполняют некоторую постобработку и затем что-то возвращают (в данном случае String
).
Таким образом, как упоминалось вышеосновная функциональность этого класса по сути является вспомогательным классом.Имея это в виду, необходимо учитывать лучшие практики при создании любого служебного класса.Основное вращается вокруг идеи избежать непреднамеренного создания экземпляров рассматриваемого класса.
Имея это в виду, предположите, какие действия разработчик должен был бы предпринять, чтобы убедиться, что он решил реализовать это с помощью нормального класса.,Они должны были бы объявить класс как final
(чтобы избежать наследования), они бы создали приватный конструктор и затем создали бы все открытые методы.
Однако, выбрав enum
довольномного всего вышеперечисленного предлагает из коробки.Вы не можете наследовать от enum
и не можете создавать экземпляры с помощью new
.
Подводя итог, они выбрали это для того, чтобы, казалось бы, соблюдать лучшие практики создания класса utlity.В идеале для меня я бы использовал ту же концепцию enum
, но предпочел бы использовать одноэтапную службу с указанными методами.