Источник
Фабрика, по сути, это виртуальный конструктор. Предположим, у нас есть базовый класс и несколько его наследников. Мы хотим создавать объекты наследников, скрывая их за указателем на базовый класс. Кроме того, мы хотим, чтобы тип наследника определялся в динамике через какой-то параметр. Например, через строковое имя класса, как это сделано в моем примере.
Read more...
c plus plus, Development, Factory, Pattern, Programming, Паттерны, Программирование, разработка, фабрика
Источник
За примерами адаптеров далеко ходить не нужно — достаточно взглянуть на адаптеры STL-контейнеров. Например, std::stack. Назначение адаптеров — ограничить функциональность существующей сущности, добавить дополнительные проверки, внести какие-то ограничения и так далее, получив тем самым новую концептуальную сущность.
Read more...
Adapter, Development, Programming, паттерн, Паттерны, Программирование, разработка
Источник
«Variant» это такой объект-контейнер, в который можно поместить любой другой объект любого типа, а сами «варианты» можно сложить в массив, поскольку с точки зрения языка они явлются одним и тем же типом, независимо от того, что внутри них хранится. Помните наш мультфильм про Винни-пуха? «В нем можно держать все что угодно» — говорил Винни-пух про горшочек из-под меда. Аналогично, рассматриваемый паттерн позволяет в одном и том же объекте хранить значения любого типа. «Variant» это горшочек, в котором можно держать все что угодно.
Read more...
any, Development, Programming, variant, паттерн, Паттерны, Программирование, разработка