Шаблоны Java. Прокси / Заместитель (Proxy / Surrogate)
Вставка
- Опубліковано 26 вер 2024
- Шаблон проектирования Прокси, он же Заместитель, он же Суррогат, предназначен для косвенного обращения к объекту. То есть обращение к методам реального объекта происходит через объект-заместитель (прокси).
Основные типы заместителей: удаленный заместитель (remote proxy), виртуальный заместитель (virtual proxy) и защитный заместитель (protection proxy).
вКонтакте: java4you
Плейлист: • Шаблоны проектирования...
Видео: • Шаблоны Java. Прокси /...
Обошёл ограничение по доступу к рутрекеру, уехав в Польшу :)
отличный пример паттерна в реальной жизни))
Крутой ролик) Особенно пример в конце - бомба!!
ух как посмеялся после слов "это незаконно, я вообще-то это не использую"
Спасибо! Все круто и понятно, жду шаблоны Bridge и Flyweight.
ну всё, тюрьма ждёт тебя за нелегальный просмотр))
Спасибо!)
Респект за видео. И за дополнение)))
Действительно! куда уже проще) очень хорошо разжевал. Даже такой тупой как я все понял
огромное спасибо)) очень доступно донесли смысл))
В конструктор Proxy кроме присвоение адреса картинки, можно было бы реализовать отрисовку этой картинки но в более низком разрешении.
Забавно вышло XD
Благодарю! Просьба используйте модификаторы доступа для полей
зачем? Здесь акцент именно на шаблонах проектирования. И вовсе не стоит отвлекаться еще и на модификаторы
Шикарно объяснили, жизненно.)
thx
dynamic Proxy обьяснил бы)
Как теперь писать юнит-тест на Proxy ? Как подменить захардкоженную зависимость?
в unit и не нужно, тестируй тот сервис что используешь, а ресурс замокай (Mockito).
Интегрейшн сложнее, нужно делать тестоваый контекст, а там можно все что угодно уже
А что вам мешало не в конструкторе прописать load(), а отдельным методом. Тогда бы при создании реального RealImage будет также создан только путь к файлу, как и в прокси сервисе. Загрузку как и в прокси вызываете когда юзер запустит видео)) Зачем огород классов городить?
Видимо фишка в том, чтобы файл (картинка) загружался тогда, когда вызывается конструктор, то есть при создании файла
тут дело в том, что не всегда можно повлиять на поведение класса напрямую (сторонняя библиотека). А вот этот шаблон как раз-таки можно использовать для кастомизации чужого класса.
почему не создать просто синглтон класс ? и с помощью объекта данного класса вызывать метод display() и в нем вызвать метод load()?
или если не нужно синглтон , то разве не может метод load просто вызывать в методе display()?
представь что тебе попался ресурс который не ты делал, а он вот берёт и закачивает.
Если пропустишь через обёртку то ты по сути сделаешь прокси, только без такого же интерфейса и поэтому не сможешь удобно его использовать.
синглтон - антипаттерн.
Почему без такого же интерфейса? В декораторе ты наследуешь класс, а следовательно и его интерфейс.
brazzers-hd.com во фригейте
хы-хы
запалил, хаха)) но на самом деле, это уже предустановки плагина, он уже идет со списком сайтов, а я вообще на другом сайте зависаю, если что))
Не могу этого не сказать, но КАЗАЛОСЬ БЫ ПРИЧЁМ ТУТ УКРАИНА?))))))))))))))))))))
да, пересмотрел. И правда, забавно вышло. Наверное, в начале хотел что-то еще включить и забыл)))))
@@programm4you смею предположить, что вы ака Jameson Born решили перевести свой request примерно по такому маршруту: Россия => Казахстан => Украина => Казахстан => Украина => Беларусь => Казахстан. Я бы точно не ожидал такой прыти))
лучшеб с NGINX пример привел, здесь же не домохозяйки сидят с рутрекера качать сериалы))
казалось бы при чем тут Украина)