Здравствуйте, Тёмчик, Вы писали:
S>>Вы не ответили на вопрос о том, каким боком и зачем бы приплетен паттерн Visitor.
Тё>S>> тому человеку, возможно (и скорее всего) нужно было в качестве callback-ов использовать чисто сишные функции. А это может потребоваться по разным причинам, начиная от использования легаси-кода и заканчивая интеграцией C++ного кода и кода на каком-нибудь Lua или Python (из которых наружу торчат C-шные интерфейсы).
Тё>Почитайте про Visitor, подумайте.
Читал. Думал. Пока получается, что Тёмчик звиздун, который звиздит не думая, а потом не может за свой звиздежь ответить.
Так как Visitor поможет в интеграции с C-шным кодом.
Тё>Unsubscription => Subscription (подписка)
Тё>SubscriptionStorage => ObservableImpl
Тё>Link => Node
Тё>OneSubscription => SubscriptionNode
Очень веские замечания, да. При том, что Link принципиально сделан как Link, а не как Node. Обратите внимания, что Link кроме ссылок ничего не содержит.
Тё>sentinel иницировать в конструкторе:
Тё>sentinel.next = sentinel.prev = sentinel.
За такие инициализации в конструкторе в C++ со времен 1990-х по рукам бъют. Но откуда вам знать-то.
Тё>Можно ещё поиграться с пре-инициализацией кэша SubscriptionNode как цикличного списка, и чтобы ObservableImpl брал Node оттуда в свой список, а при unsubscribe возвращал обратно. Будет тебе тогда cache locality и избежание динамического выделения памяти:
Тё>Тё>SubscriptionNode[2048] nodeCache;
Тё>
Тёмчик, да вы мало того, что зведун, так еще и архитектор-астронавт? Предложить мутную и сложную схему с большими накладными расходами и звиздеть, что это правильный дизайн.
Теперь становятся более понятными ваши стенания о том, что ваш звиздатый код не понимают, а вас не ценят.
Тё>Ну вот для вас виртуальный деструктор- верх сложности?
Нет, это вы не можете подтвердить свое знание C++. Без чего ваши отзывы и о возможностях C++, и о сфере применимости C++ играют очень яркими красками.
Тё>О чём я и говорил: слабость в алгоритмах и религиозная вера в C++.
Мне вот интересно, где именно в нашем с вами споре в этой теме вы нашли религиозную веру в C++ в моих словах. Пальцем показать сможете?
Тё>Я вообще много чем занимался, и нигде из компаний, не являлся C++ рационально обоснованным инструментом. Только исторически или в силу религии.
Сказал как отрезал.