Главная трудность с GC в C++ является потребностью обработать несовместные модули в смысле GC. т.е., для контакта с библиотеками, которые никогда не писались с GC в памяти.
Поэтому GC Boehm часто предлагается.
Страница Википедии всегда является хорошим местом для начала. В столбце «В шаблонах проектирования» в связанной таблице указано, какие шаблоны были в книге GOF, а какие нет.
Какова его ценность, Шаблоны проектирования в Википедии содержит список шаблонов проектирования, включая информацию о том, появляются ли эти шаблоны в книге GOF.
Сверху в моей голове, GOF исключает целую категорию шаблонов проектирования, связанных с параллелизмом, включая блокировку с двойной проверкой, блокировку спина и почти все, что касается вычисления числа пи .
Кроме того, некоторые шаблоны, кажется, следуют естественным образом. из других парадигм программирования:
В функциональном программировании есть множество шаблонов, которых нет в книге GOF. Часто используемый шаблон проектирования включает использование аккумулирующих переменных для преобразования не хвостовых рекурсивных функций в хвостовые рекурсивные функции. Дополнительно, концепция монады или то, для чего она используется, были бы совершенно чужды первоначальным разработчикам. Неизменяемые объекты полностью отсутствуют в книге GOF.
Макросистему Lisp, вероятно, можно было бы считать шаблоном проектирования или его индикатором.
Я никогда не использовал язык программирования на основе стека, но держу пари, что у программистов Forth есть множество уловок, чтобы их алгоритмы четко отображались в стеке.
В абстрактном смысле вы можете рассматривать отношения между таблицами в схеме реляционной базы данных как своего рода шаблон проектирования: 1-ко-многим, многие- к одному, многие ко многим, один к одному. Более того, есть предсказуемые способы моделирования иерархических данных, и вот довольно простой способ моделирования помеченных объединений в SQL ,
и т. Д.
Список википедии, указанный Брайаном, действительно довольно обширен. Я был удивлен, обнаружив…
есть только несколько других шаблонов oo design. один из них - null object (другой я забыл). они плюс 23 gof являются как бы ортогональными и полными. на самом деле их больше нет. все остальное - в основном просто комбинация этих 25 или около того.