Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zhenya.ya
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 305
#1

strategy pattern - C++

25.11.2010, 02:15. Просмотров 990. Ответов 4
Метки нет (Все метки)

Как можно понять етот пример? а т.е. ведь метод DoAlgorithm(); не может быть вызван в этом месте: theStrategy.DoAlgorithm() ; И зачем нам нужен Context<MyStrategy> aContext??

Как в мейне вызывать тогда?
Как бы можно понятние расписать этот пример?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template <class AStrategy>
class Context {
    void Operation()
    {
    theStrategy.DoAlgorithm() ; 
    } 
private : 
    AStrategy theStrategy;
}; 
 
class MyStrategy {
public:
    void DoAlgorithm();
};
 
Context<MyStrategy> aContext;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2010, 02:15     strategy pattern
Посмотрите здесь:

Template Method Pattern - C++
Задание называется Template Method Pattern. из параграфа полиморфизм. Вообщем суть задания создать функцию Print() которая бы правильным...

Template Method Pattern - C++
Где можно об этом почитать на русском нормальный материал ? Template Method Pattern

Expansion pattern contains no argument packs - C++
Есть 3 функции: void add(short n) { //... return; } void add(short a, short n) { //... add(n...); return; }

.RAW to JPEG with Bayer Pattern - C++
Всем привет, боюсь задачка скорее для раздела &quot;C/С++ для профессионалов&quot;, однако там мне писать низя =) Стоит задача (учебная)...

паттерн strategy - PHP ООП
в приложенном архиве примерчик гостевой книги. В общем в форму html вводятся данные (user, email, message) данные передаются php скрипту...

Паттерн Strategy и игрушка - C#
Есть задание: применить паттерн Strategy к игрушке (всякие перемещения для объектов). Немного погуглил, почитал вот такое вот написал:...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
25.11.2010, 13:36     strategy pattern #2
zhenya.ya,
C++
1
2
3
4
int main()
{
    aContext.Operation();
}
А что сложного в примере?
Есть шаблонный класс Context с шаблонным членом theStrategy.
Шаблонная функция вызывает метод DoAlgorithm(коий обязан являться членом класса/структуры, в общем типа, который является шаблонным параметром класса Context или его базового класса).

Далее описывается класс MyStrategy в котором объявляется (а где определение?) функция void DoAlgorithm().

Далее создается объект класса Context с шаблонным параметром MyStrategy под названием aContext
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
25.11.2010, 17:27     strategy pattern #3
Шаблон — это текст, в который подставляются конкретные типы или значения на этапе компиляции, поэтому с параметрами шаблона можно делать что угодно. Главное, чтобы подставляемый тип удовлетворял всем условиям, предъявленным ему шаблоном.
Например:
C++
1
2
3
4
template <typename type>
struct test {
    void method (const type & value) { value.some_action(); }
};
Данный шаблон может быть конкретизирован любым классом, в котором определён метод "some_action".
Вернее, конкретизирован он может быть совершенно любым классом или типом, например,
C++
1
test<int> t;
но при вызове метода "method" произойдёт ошибка.
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
25.11.2010, 17:30     strategy pattern #4
но при вызове метода "method" произойдёт ошибка.
Стандартные типы не имеют методов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2010, 17:35     strategy pattern
Еще ссылки по теме:

Паттерн Strategy + paintEvent - C++ Qt
Здравствуте. В универе задали создать игру Тетрис. Прорисовку окон сказали осуществить с использованием шаблона Strategy. Тоесть у меня...

EJB read mostly strategy - Java EE
Есть бин, примерно 200-300 записей в базе, которые он представляет. Эти записи обновляются каждый день в 15:00 GMT. Скорее всего, нужно...

Использование паттерна Strategy - PHP
Помогите написать php код с применением ООП. Дан каталог компьютеров. Свойства компьютеров (величины целочисленные): cpu, RAM, hdd....

Работа с интерфейсами и шаблон Strategy - Проиллюстрировать использование интерфейсов - C#
Задание к работе: 1. Проиллюстрировать использование интерфейсов. 2. Показать вызов метода интерфейса через интерфейсную ссылку. 3....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
25.11.2010, 17:35     strategy pattern #5
Genius Ignat, важное и своевременное замечание.
Yandex
Объявления
25.11.2010, 17:35     strategy pattern
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru