Паттерн Декоратор — специальный способ организации модулей в программе, который позволяет подставить какую-то новую функцию прямо в середину цепочки вызовов, тем самым чуть-чуть подкорректировав поведение.
Например, в реальном мире очки для чтения это декоратор. Вы ставите их между вашими глазами и текстом. Глобально взаимодействие ваших глаз и текста не меняется: отражённые световые лучи от страницы книги попадают в ваши зрачки, что с очками, что без них. Но очки располагаются посередине: они принимают лучи на вход и преломляют их, передавая дальше вам в глаза уже изменёнными.
Важной особенностью является тот факт, что очки можно снять. Они не требуют ни модификации вашего тела, ни модификации книги. Вообще никакие условия не нужны, кроме наличия самих очков. А если вы в линзах, то внешний наблюдатель может даже этого не знать.
Класс-декоратор должен быть спроектирован так, чтобы не требовать никаких изменений в объектах, с которыми он работает. Его можно отключить, чаще всего буквально закомментировав одну строку.
В примере ниже программа выведет текст "Привет, мир, в натуре.", и вот это дополнение в конце как раз дописано декоратором. Можно убрать или закомментировать подчёркнутую строчку, не трогая остальной код, для всех внешних вызовов сигнатуры останутся теми же самыми, но выводиться будет уже просто "Привет, мир".
В декораторы можно прятать логику, которую буквально навешивают поверх основной функции программы. Например, проверку прав на выполнение операции. Перевод на другой язык, логирование, поддержку обратной совместимости при обновлении и так далее.
#dev
Издательство БамБук показало атмосферную обложку новеллы "Туман. Вне измерений" Вэйфэн Цзисюй, которую для российского издания рисовал китайский художник (жаль, что не указано, кто именно). Надеюсь, скоро будут подробности касательно сроков, а пока любуемся
#China#novel#WeiFengJiXu#Mist#BoWu#анонсы
Не могу вам объяснить, как это работает, но иногда в моей голове выстраиваются неожиданные ассоциативные ряды, на которые просто нельзя закрывать глаза.
Читая очередную главу "Опасных личностей" Мугуа Хуан, я внезапно вспомнила про новеллу "Туман" Вэйфэн Цзисюй. Казалось бы, персонажи и сюжеты не имеют абсолютно ничего общего (кроме ментальных особенностей одного из главных героев), но достаточно было одного эпизода, чтобы я не смогла выкинуть эту мысль из головы.
В "Тумане" мне запал в душу момент, когда капитан Сун, помня о том, что советник Цзи обладает уникальной памятью, фиксирующей все, что видит человек, и не дает впоследствии это забыть (гипертимезия), попытался спасти его от ужасающих воспоминаний о своем расчлененном теле (петли времени вошли в чат), поэтому поспешил закрыть ему глаза, поставив душевное равновесие этого человека выше своего собственного. Он попытался посмотреть на мир глазами Цзи Юйши, и картина эта, как мне кажется, была весьма пугающая.
В "Опасных личностях", когда Се Линь узнает о способности Чи Цина читать мысли, он воспринимает эту новость с должным пониманием, но моментально перенастраивает свою оптику и начинает ставить себя на место этого странного нелюдимого парня, пытаясь понять, что тот чувствует, когда пропускает через себя порочные мысли людей. Казалось бы, эта способность — дар свыше, благодаря которому можно раскрыть столько запутанных дел, но реакция Се Линя оказалась совершенно иной, ибо он поставил душевное равновесие близкого человека выше очевидной выгоды:
— Не снимай перчатки, — Се Линь положил руку ему на плечо. — Тебе не нужно слушать её мысли. Если она не хочет говорить, всегда найдётся способ вывести её на чистую воду. Короче, тебе не нужно вмешиваться.
Ранее он догадался лишь о «способности» Чи Цина, а также предположил, что тот каждый раз слышит не совсем нормальные вещи. Но сегодня впервые оказался так близко к этой способности.
Как именно радовалась Цзян Июнь у себя в мыслях? Какой недобрый смех Чи Цин услышал? Се Линь не решался даже думать об этом. Он знал лишь одно: эти голоса могли заставить кого угодно начать избегать людское общество в целом.
И если это способ излечения, Се Линь скорее согласился бы на то, чтобы Чи Цин навсегда остался бесчувственным и отстранённым.
— Пусть даже ты никогда не избавишься от своей болезни, плевать, — сказал он. — Что до чужих мыслей, это вовсе не имеет значения. Не надо их слушать, не надо никого трогать. Если вокруг соберётся толпа народу, ты просто встань за мной и возьми меня за руку.
Мугуа Хуан. Опасные личности. Глава 100. Телефонный разговор
Почему-то именно такие детали задевают тонкие струны моей души больше, чем любые героические поступки и пафосные речи.
#China#novel#MuGuaHuang#DangerousPersonality#WeiFengJiXu#BoWu
Торжественно объявляю празднование Китайского Нового года законным поводом, чтобы прописать на своих книжных полках новых китайских обитателей!
Внезапно получила в подарок недавно вышедшие томики издательства БамБук — первые части новелл "Туман Вне измерений" Вэйфэйн Цзисюй и "Его Темнейшество желает знать" Цинсэ Юйи и 11-й том маньхуа "Основатель тёмного пути".
С "Темнейшеством" пока лично не знакома, но "Туман" когда-то занял особое место в моём сердце, замкнув десятку первых прочитанных даньмэй-историй. По моему каналу не скажешь, но я являюсь большим поклонником качественного сай-фая (и сейчас как раз читаю одну шикарную историю, о которой скоро будут вам трещать на все лады), поэтому "Туман" угодил всем моим вкусам и даже попал в топ-5 новелл 2022 года.
К сожалению, в те времена я ещё не отличалась систематичностью (впрочем, как и сейчас), поэтому полноценного отзыва тогда не написала. Но есть небольшая заметка, которая намекает, что пора бы освежить свои воспоминания и ещё раз прокатиться на этой чёртовой карусели петле времени.
#China#novel#DevilVenerable#QingseYuyi#WeiFengJiXu#Mist#BoWu#БамБук