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

Проектирование интерфейса: передача результата по цепочке - C++

Восстановить пароль Регистрация
 
dscoma
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 9
06.01.2012, 14:38     Проектирование интерфейса: передача результата по цепочке #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
// Main.h
class Main () {
      public : 
           Main() {}
           ~Main() {}
 
           vector<int> set(vector<int> &vec);
 
           vector<int> get() {
                 //
           }
};
Следущие классы находятся в разных файлах и содержат набор методов,
которые обрабатывают Main.get() и возвращают его модифицированную версию

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// A.h
class A () {
    // результат этого класса: добавить в Main.get() несколько элементов
};
 
// B.h
class B () {
    // результат этого класса: удалить из Main.get() несколько элементов
};
 
//... и т.д. 
 
int main () {
    Main *init;
 
    vector<int> set;
 
    init->set(set);
 
    // результатом будет последняя модификация вектора в классе B 
    vector<int> get = init->get();
 
}
Таких классов, которые работают с Main.get() много, и все они должны возвращать его модифицированную версию.
Разбиение на классы, не случайно, т.к. все они содержат очень большой набор специфичеких методов.


Не знаю насколько хорошо объяснил, но суть вопроса в том как спроектировать интерфейс, в котором все классы возвращают модифицированную версию одного и того же объекта (что-то типа кортежей), т.е. результат работы предыдущего класса должен передаваться по цепочке.

Добавлено через 12 минут
Точее не картежей, а декораторов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2012, 14:38     Проектирование интерфейса: передача результата по цепочке
Посмотрите здесь:

C++ курсовое проектирование на с++
Проектирование ОО архитектуры C++
Передача результата выполнения функции C++
Передача интерфейса C++
C++ Проектирование программы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.01.2012, 14:53     Проектирование интерфейса: передача результата по цепочке #2
Ну, если я правильно понял, тут как раз декораторы и подходят. Так что читайте про иерархию наследования в паттерне декоратор и реализуйте её.
dscoma
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 9
06.01.2012, 15:26  [ТС]     Проектирование интерфейса: передача результата по цепочке #3
Цитата Сообщение от silent_1991 Посмотреть сообщение
Ну, если я правильно понял, тут как раз декораторы и подходят. Так что читайте про иерархию наследования в паттерне декоратор и реализуйте её.
Мне просто глаз режит такая инициализация:

C++
1
A obj(new B(new Main()));
Просто объектов много, поэтому и возник вопрос, можно ли как-то более изящно сделать)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.01.2012, 15:34     Проектирование интерфейса: передача результата по цепочке #4
dscoma, имхо, паттерн на то и паттерн, что изящнее уже некуда. Да и в том же шарпе или джаве только такая инициализация и возможна.
Yandex
Объявления
06.01.2012, 15:34     Проектирование интерфейса: передача результата по цепочке
Ответ Создать тему
Опции темы

Текущее время: 02:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru