Archive

Archive for the ‘Паттерны’ Category

Factory, она же — фабрика

Май 7th, 2010

Источник

Фабрика, по сути, это виртуальный конструктор. Предположим, у нас есть базовый класс и несколько его наследников. Мы хотим создавать объекты наследников, скрывая их за указателем на базовый класс. Кроме того, мы хотим, чтобы тип наследника определялся в динамике через какой-то параметр. Например, через строковое имя класса, как это сделано в моем примере.

Read more...

, , , , , , , ,

Adapter

Апрель 10th, 2010

Источник

За примерами адаптеров далеко ходить не нужно — достаточно взглянуть на адаптеры STL-контейнеров. Например, std::stack. Назначение адаптеров — ограничить функциональность существующей сущности, добавить дополнительные проверки, внести какие-то ограничения и так далее, получив тем самым новую концептуальную сущность.

Read more...

, , , , , ,

Variant или any

Апрель 10th, 2010

Источник

«Variant» это такой объект-контейнер, в который можно поместить любой другой объект любого типа, а сами «варианты» можно сложить в массив, поскольку с точки зрения языка они явлются одним и тем же типом, независимо от того, что внутри них хранится. Помните наш мультфильм про Винни-пуха? «В нем можно держать все что угодно» — говорил Винни-пух про горшочек из-под меда. Аналогично, рассматриваемый паттерн позволяет в одном и том же объекте хранить значения любого типа. «Variant» это горшочек, в котором можно держать все что угодно.

Read more...

, , , , , , ,