Информация об изменениях

Сообщение Re[3]: Скрытие имплементации при проектировании Java библиот от 05.06.2023 21:41

Изменено 05.06.2023 21:54 vsb

Re[3]: Скрытие имплементации при проектировании Java библиотек
Здравствуйте, salvequick, Вы писали:

S>Было бы достаточно если нельзя было бы создать эти классы обычными способами.


Ну в качестве странноватой, но вроде рабочей идеи — в конструкторе можно проверять стектрейс и убеждаться, что класс создаётся из вашего кода, а не из чужого.
Re[3]: Скрытие имплементации при проектировании Java библиот
Здравствуйте, salvequick, Вы писали:

S>Было бы достаточно если нельзя было бы создать эти классы обычными способами.


Ну в качестве странноватой, но вроде рабочей идеи — в конструкторе можно проверять стектрейс и убеждаться, что класс создаётся из вашего кода, а не из чужого.

Ещё одна странноватая идея — объявить класс abstract. Тогда его инстанцировать не получится. В другом пакете объявить уже package-private наследника и инстанцировать. Клиент, конечно, сможет сделать то же самое, но это уже как бы лишние действия, случайно такое не сделать.