Паттерн Декоратор — специальный способ организации модулей в программе, который позволяет подставить какую-то новую функцию прямо в середину цепочки вызовов, тем самым чуть-чуть подкорректировав поведение.
Например, в реальном мире очки для чтения это декоратор. Вы ставите их между вашими глазами и текстом. Глобально взаимодействие ваших глаз и текста не меняется: отражённые световые лучи от страницы книги попадают в ваши зрачки, что с очками, что без них. Но очки располагаются посередине: они принимают лучи на вход и преломляют их, передавая дальше вам в глаза уже изменёнными.
Важной особенностью является тот факт, что очки можно снять. Они не требуют ни модификации вашего тела, ни модификации книги. Вообще никакие условия не нужны, кроме наличия самих очков. А если вы в линзах, то внешний наблюдатель может даже этого не знать.
Класс-декоратор должен быть спроектирован так, чтобы не требовать никаких изменений в объектах, с которыми он работает. Его можно отключить, чаще всего буквально закомментировав одну строку.
В примере ниже программа выведет текст "Привет, мир, в натуре.", и вот это дополнение в конце как раз дописано декоратором. Можно убрать или закомментировать подчёркнутую строчку, не трогая остальной код, для всех внешних вызовов сигнатуры останутся теми же самыми, но выводиться будет уже просто "Привет, мир".
В декораторы можно прятать логику, которую буквально навешивают поверх основной функции программы. Например, проверку прав на выполнение операции. Перевод на другой язык, логирование, поддержку обратной совместимости при обновлении и так далее.
#dev
🗼Новый символ Анкары - Atatürk Cumhuriyet Kulesi - откроется в годовщину Победы при Чанаккале
18 марта - в 109-ю годовщину Победыв битве приЧанаккале - для жителей и гостей столицы откроет свои двери «Башня Республики Ататюрка», которая ознаменует собой 100-летие Турецкой Республики
Фундамент 197-метровой башни был заложен в столичном муниципалитете Кечиёрен (Keçiören) еще в 2003 г., однако строительство на некоторое время было приостановлено. Теперь работы завершены, и башню планируется открыть в понедельник, 18 марта, с участием президента Эрдогана.
В здании башни разместятся художественная галерея, где планируется проводить международные выставки, библиотека, тренажерный зал, торговый центр, на высоте 190 м. зал свадебных церемоний, на высоте 140 м. - космическая терраса и научный центр, а также кафе и вращающийся ресторан.
Башня, спроектированная архитектором Атакуле Рагыпом Булучем (Ragıp Buluç), имеет сейсмоустойчивую конструкцию. Увенчанная на вершине «Звездой Сельджуков» - общим наследием турецкой культуры, - в вечерние часы она будет освещаться системой светодиодных экранов.
Башня Республики Ататюрка должна стать новым символом столицы, с вершины которой посетители получат возможность наблюдать за мегаполисом с высоты птичьего полета ☸️
📍 Ankara #Ankara
Turkuaz / Турецкий цвет
Видео: HaberTurk
#Turchia: le operazioni della polizia si diffondono anche nel municipio di #Ankara; con l'accusa di corruzione, in merito ai concerti organizzati 4 anni fa, oggi sono finite in manette 13 persone.
#Turchia: una nuova ondata di vittime dell'alcol di produzione clandestina, a #Ankara sono 33 le persone morte e 20 sono in terapia all'ospedale, in pochi giorni.
#Turkey deploys F-16 jets in #Somalia
Turkey has deployed F-16 fighter jets to Somalia, officials told AFP on Thursday, as #Ankara seeks to expand its military footprint in the Horn of Africa.
Ankara is a key ally of Somalia, providing extensive military and economic support to the country, which has been ravaged by civil war since the early 1990s.
"Turkey has deployed F-16 jets in Somalia," a government official told AFP, without giving further details. A second official, also speaking on condition of anonymity, said the aircraft would be operated by the Turkish contingent stationed in Somalia.
"This is for our own security," the source said, stressing that the jets would not be flown by Somali personnel. Turkey opened its largest overseas military base in the Somali capital Mogadishu in 2017.
Ankara maintains a task force and an air component command there "to contribute to ....
https://web.facebook.com/AddisstandardEng/posts/pfbid032KptiLG37NfJxJbwbCJx3WCHVdMJaKhytXTrgYP3tyZF5EPKCnXVib7TjwimxGdpl
Turkish President Recep Tayyip Erdoğan said that Turkey would never want to see new conflict in the Horn of Africa, emphasizing the need for stability and encouraging countries in the region to address challenges through cooperation and dialogue.
Erdoğan emphasized respect for sovereignty and territorial integrity, cautioning against external geopolitical competition in the Horn. He reiterated #Ankara’s position that potential recognition of #Somaliland by #Israel would not contribute positively to regional stability.
He also welcomed diplomatic engagement between #Ethiopia and #Somalia, noting Turkey’s mediation efforts aimed at easing tensions.
https://addisstandard.com/?p=55223
#Iran – Esmail Baghaei, portavoce del Ministero degli Esteri:
"Confidiamo in una rapida conclusione dei negoziati con gli #USA per la rimozione delle sanzioni. Un ringraziamento particolare a #Ankara per il ruolo di mediazione."
Il dodicesimo anniversario della rivolta popolare di #Gezi, ieri sera, è stato commemorato anche a #Ankara/#Turchia. Il presidio si è concluso con l'intervento della polizia, 15 persone in detenzione provvisoria.
#USA: Due senatori presentano la proposta di sanzioni contro #Ankara/#Turchia da attivare nel caso di un rifiuto della tregua e di una zona demilitarizzata in #Rojava/#Siria.