Здравствуйте, bnk, Вы писали:
bnk>Здравствуйте, Rutven, Вы писали:
R>>Несовсем корректный пример. Основная идея в том, что у вас есть некоторая общая последовательность действий, но с разными вариантами реализации. Например так:
bnk>хъ
bnk>Я вот тоже так думал, но автор уже написал, что то такой пример называется уже не NVI, а "шаблонный метод" ("Template method").
bnk>Так что не катит... Насколько я понял, NVI — это когда реализация не-виртуальной функция базового класса не содержит
bnk>ничего кроме вызова соответствующей виртуальной функции...
bnk>IMHO, смысл у такой реализации только один —
bnk>чтобы была возможность в последующем преобразовать ее в "полноценный" шаблонный метод.
На самом деле, это я лоханулся

, мой пример — это как раз Template method, а тот, что привели вы и есть NVI.
The template method is strongly related to the NVI (Non-Virtual Interface) pattern. The NVI pattern recognizes the benefits of a non-abstract method invoking the subordinate abstract methods. This level of indirection allows for pre and post operations relative to the abstract operations both immediately and with future unforseen changes.
http://en.wikipedia.org/wiki/Template_method_pattern... << RSDN@Home 1.1.4 stable SR1 rev. 568>>