Паттерн Декоратор — специальный способ организации модулей в программе, который позволяет подставить какую-то новую функцию прямо в середину цепочки вызовов, тем самым чуть-чуть подкорректировав поведение.
Например, в реальном мире очки для чтения это декоратор. Вы ставите их между вашими глазами и текстом. Глобально взаимодействие ваших глаз и текста не меняется: отражённые световые лучи от страницы книги попадают в ваши зрачки, что с очками, что без них. Но очки располагаются посередине: они принимают лучи на вход и преломляют их, передавая дальше вам в глаза уже изменёнными.
Важной особенностью является тот факт, что очки можно снять. Они не требуют ни модификации вашего тела, ни модификации книги. Вообще никакие условия не нужны, кроме наличия самих очков. А если вы в линзах, то внешний наблюдатель может даже этого не знать.
Класс-декоратор должен быть спроектирован так, чтобы не требовать никаких изменений в объектах, с которыми он работает. Его можно отключить, чаще всего буквально закомментировав одну строку.
В примере ниже программа выведет текст "Привет, мир, в натуре.", и вот это дополнение в конце как раз дописано декоратором. Можно убрать или закомментировать подчёркнутую строчку, не трогая остальной код, для всех внешних вызовов сигнатуры останутся теми же самыми, но выводиться будет уже просто "Привет, мир".
В декораторы можно прятать логику, которую буквально навешивают поверх основной функции программы. Например, проверку прав на выполнение операции. Перевод на другой язык, логирование, поддержку обратной совместимости при обновлении и так далее.
#dev
🟢Le ministère russe de la Défense diffuse des images d’une mission de combat effectuée par un hélicoptère #Mi-28NM dans la zone de l'opération militaire spéciale.
RT en français • Osez questionner !
🟢Le ministère russe de la Défense diffuse des images d’une mission de combat effectuée par un hélicoptère #Mi-28NM dans la zone de l'opération militaire spéciale.
RT en français • Osez questionner !
🟢Le ministère russe de la Défense diffuse des images d’une mission de combat effectuée par un hélicoptère #Mi-28NM dans la zone de l'opération militaire spéciale.
RT en français • Osez questionner !
💥[MINIMAZO ACTUAL] Patinete eléctrico Xiaomi 5 Pro por 314€
#Mi🇪🇸
🔹 El Xiaomi 5 Pro es un patinete eléctrico que ofrece una experiencia de movilidad urbana eficiente y cómoda. Con una autonomía de hasta 45 km, es ideal para desplazamientos largos. Su motor potente permite alcanzar velocidades de hasta 25 km/h, mientras que su sistema de frenado regenerativo mejora la seguridad y eficiencia. Además, cuenta con un diseño plegable que facilita su transporte y almacenamiento.
💲SOLO 314€ Envío gratis 🇪🇸DESDE ESPAÑA🇪🇸
🌐Enlace de la oferta: https://chz.to/826df
#️⃣ Aplica cupón del vendedor
❇️ Síguenos en WhatsApp
💥[MINIMAZO ACTUAL] Televisor Xiaomi TV F Pro 75 pulgadas por 494,9€
#Mi🇪🇸
🔹 Disfruta de una experiencia visual impresionante con el Xiaomi TV F Pro de 75 pulgadas que ofrece una resolución 4K UHD en una pantalla QLED para colores vibrantes y detalles nítidos. Este Smart TV cuenta con Fire OS8 y control por voz Alexa para una navegación sencilla y rápida. Además, incluye HDR10+ para un rango dinámico mejorado y el Modo Game Boost a 120Hz para una experiencia de juego fluida. Con 2GB de RAM y 32GB de almacenamiento, es compatible con Apple AirPlay para una conectividad versátil.
💲SOLO 494,9€ 🇪🇸DESDE ESPAÑA🇪🇸
🌐Enlace de la oferta: https://chz.to/hg61f
#️⃣ Descuento del cupón de 10% antes añadirlo al carrito.
❇️ Síguenos en WhatsApp
💥[HISTÓRICO] Televisor Xiaomi TV F Pro 75 4K UHD por 494€
#Mi🇪🇸
🔹 Disfruta de una experiencia visual impresionante con el Xiaomi TV F Pro 75 que ofrece una pantalla de 75 pulgadas con resolución 4K UHD y tecnología QLED para colores vibrantes y detalles nítidos. Este Smart TV incluye Fire TV y control por voz Alexa para una navegación sencilla y rápida. Además, cuenta con HDR10+ para un mejor contraste y 60Hz con 120Hz Game Boost Mode para una experiencia de juego fluida. Con 2GB de RAM y 32GB de almacenamiento, es compatible con Apple AirPlay para compartir contenido fácilmente.
💲SOLO 494€ 🇪🇸DESDE ESPAÑA🇪🇸
🌐Enlace de la oferta: https://chz.to/o34j3
#️⃣ Aplica el código BIENVENIDO2025 al procesar el pedido.
❇️ Síguenos en WhatsApp
Fayette Park
В последний день поездки в Мичиган остались этом парке, выбрал я его случайно, основываясь только на большом количестве отзывах и картинках из интернете. Оказалось, что парк расположен в красивом месте и имеет историческое значение
В 1867 году компанией "Fayette Iron Company" на этом месте был основан поселок для работников, занятых в железной промышленности. Был создан для обеспечения жильем рабочих, которые занимались выплавкой железа в этом регионе. Когда предприятия начали закрываться, то население сократилось и поселок стал заброшен. После бизнесмен по имени Кларенс Л. Бартон планировал сделать из поселка курорт, но проект не был реализован
Штат Мичиган выкупил территорию поселка в 1950 году и сейчас это исторический объект с красивыми небольшими маршрутами вокруг него. Отдельные здания еще на реставрации, но в большинстве сохранился дух 19 века - интерьер, одежда, продукты, купюры и всё-всё-всё чем пользовались жители того времени
На территории парка можно увидеть такие здания как магазин/барбершопную/жилые дома/церковь/здания администрации/завод
___
Забавляет думать, что лет так через 100 такие же здания гугла/майкрософта и т.д. в кремневой долине будут заброшены и по ним будут также устраивать исторические туры, а детишки в 2125 году будут ходить и удивляться какими мы были древними людьми и что вообще кто-то переезжал в Штаты работать чтобы кнопочки на компьютере нажимать
#MI
В Мичигане много маяков. Очень. Маяки маленькие, маяки большие, маяки кругленькие, маяки квадратненькие, маяки-домики, маяки для игр на детских площадках, форма маяков на крышах частных жилых домов, даже дизайн маяков на заправках
Штат находится между тремя огромными озерами, такое количество маяков - часть истории, но как же они круто символизируют и стилизуют этот регион
#MI