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

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

Войти
Регистрация
Восстановить пароль
 
dscoma
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 9
#1

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

06.01.2012, 14:38. Просмотров 394. Ответов 3
Метки нет (Все метки)

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++
Добрый день. Есть DLL с парой экспортируемых функций. В функциях используются вычисления, основанные на стороннем API. Хотелось бы...

Передача результата выполнения функции - C++
int search() // эта функция ищет индекс { for (int i = 0; i &lt; 4; i++) { ... } } int add(int a) // сюда он...

Количество одинаковых чисел в цепочке - C++
буду оочень благодарна, если поможете Напишите программу , которая получает три числа и выводит количество одинаковых чисел в цепочке. ...

Проектирование классов - C++
Доброго здравия жителям Земли. Вопрос таков: нужно ли в своём проекте жёстко скрывать реализацию классов, городить кучу интерфейсов как...

Проектирование класса - C++
Доброго времени суток. Имеется класс Player, в нём — приватный объект типа Settings. Как наиболее лаконично обратиться извне к публичным...

курсовое проектирование на с++ - C++
21. В цехе находятся 8 станков. Каждый станок имеет свое время обработки заготовки и свое количество материала в кг., уходящего в отходы....

Проектирование программы - C++
Здравствуйте! Подскажите пожалуйста, какими средствами эффективнее проектировать и рекодить программу? Тема стала актуальна с...

А.Александреску - Современное проектирование на C++ - C++
Собственно вопрос не совсем по программированию :) Хочу купить бумажный вариант, но смущает, что она 2008 года и в шаблонах используется...

Проектирование и работа с классами - C++
Задали лабораторную в институте. Не знаю как сделать, люди помогите пожалуйста. Спроектировать и реализовать класс Complex для работы...

Проектирование ООП программы - C++
Привет, начал писать большие программы, без планирования, в итоге , приходится переписывать по 100 раз, что посоветуете, как правильно...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
06.01.2012, 15:34     Проектирование интерфейса: передача результата по цепочке #4
dscoma, имхо, паттерн на то и паттерн, что изящнее уже некуда. Да и в том же шарпе или джаве только такая инициализация и возможна.
Yandex
Объявления
06.01.2012, 15:34     Проектирование интерфейса: передача результата по цепочке
Ответ Создать тему
Опции темы

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