Russian Qt Forum
Ноябрь 23, 2024, 21:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Sets of Objects  (Прочитано 20292 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #30 : Сентябрь 11, 2009, 18:11 »

Для выполнения undo также нужны два действия:
* Создать объект
* Добавить указатель на него в сет.

Какие проблемы?  Улыбающийся
В какой сет(ы)? На каком месте в этом set(е) должен быть указатель на восстанавливаемый объект?
« Последнее редактирование: Сентябрь 11, 2009, 18:17 от Igors » Записан
spectre71
Гость
« Ответ #31 : Сентябрь 11, 2009, 18:29 »

Кстати, твоя задача, вернее ее некоторая разновидность(поскольку твоя абстрактна и ни к чему не привязана), вполне может быть решена через "Model-View-Controller" (я не имею ввиду QT-ную Model-View, а говорю про шаблон проектирования).

Если нет особого желания эксперементировать, разрабатывать свои схемы взаимодействий обектов(что вообще то очень полезно для развития), почитай про "Шаблоны(Паттерны) проектирования". http://ru.wikipedia.org/wiki/Паттерны_проектирования. Там есть и список литературы.

Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #32 : Сентябрь 11, 2009, 18:45 »

Есть 3 объекта QString. Пользователь удалил 2-ю. Естественно, перед удалением мы записали ее в стек undo. Все хорошо, но эта строка входила в set(ы). Значит и указатели на нее в set'ах должны быть удалены. Как сказать undo что надо восстановить связки?
Опять абстрактная задача. Ну хорошо, приведу один абстрактный пример решения.
Видимо у нас с Вами различное понимание абстракции Улыбающийся

- 3 объекта QString - разве это абстрактно?  По-моему - это предельно конкретно  Улыбающийся

- Есть set'ы, BRE предложил QList <QObject *> для set'ов. Хорошо, по существу так оно (сейчас) и есть. Оформляем:

typedef QList <QObject *>  TObjectList;
typedef QList <QObject *>  TSel;
typedef QList <TSet>         TSelList;

TObjectList theObjects;         // all objects in task
TSetList theSets;                 // all sets in task

При активности пользователя случилось:

theObjects.append("One");
theObjects.append("Two");
theObjects.append("Three");
...
theSets[selectedSet].append(theObjects[selectedObject]);  //  добавили selectedObject в selectedSet

Никак не могу понять, ЧТО неясно и зачем обзывать очевидные вещи абстракцией? Улыбающийся
Если тема Вас не интересует - просто не отвечайте
Если интересует - отвечайте по существу а не "взагалi"  Улыбающийся



« Последнее редактирование: Сентябрь 11, 2009, 18:49 от Igors » Записан
spectre71
Гость
« Ответ #33 : Сентябрь 11, 2009, 19:14 »

Если честно, мне это надоело. Вы не потрудились даже прочитать и обдумать, то что было после этой фразы:
Опять абстрактная задача. Ну хорошо, приведу один абстрактный пример решения.
на написание чего я убил кучу своего времени и вы мне еще кидаете какие-то упреки:
Если тема Вас не интересует - просто не отвечайте
Если интересует - отвечайте по существу а не "взагалi"  Улыбающийся

Далее
Никак не могу понять, ЧТО неясно и зачем обзывать очевидные вещи абстракцией? Улыбающийся
Абстракция это именно, то что вы дали, поскольку небыло описано конкретной решаемой задачи. Подобных вещей можно много понапридумывать, но пока нет конкретной задачи, не может быть и конкретного решения, а абстрактное я вам привел.
Записан
BRE
Гость
« Ответ #34 : Сентябрь 11, 2009, 19:15 »

В какой сет(ы)? На каком месте в этом set(е) должен быть указатель на восстанавливаемый объект?
Сообразил.
Посмотри такой паттерн как Command. Найдешь все ответы на свои вопросы.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #35 : Сентябрь 11, 2009, 19:40 »

Посмотри такой паттерн как Command. Найдешь все ответы на свои вопросы.
Мне кажется Вы несколько увлеклись "ролей учителя" Улыбающийся
Я говорю о конкретных проблемах которые я испытал на своей шкуре, а не вычитал в умной книге. Мое мнение наивно и.т.п.? Очень может быть, я это переживу Улыбающийся Но я хотел бы видеть/слушать реальных пацанов которые так же "поползали на брюхе"  как и я со всеми этими заморочками. А мнение "абстрактных теоретиков" которые сами этого не делали но что-то слышали - ну оно столько же и стОит  Улыбающийся

Примите мои искренние извинения и.т.п. за то что я поднял "неудобную" тему
Будьте здоровы, умолкаю
Записан
BRE
Гость
« Ответ #36 : Сентябрь 11, 2009, 19:49 »

Но я хотел бы видеть/слушать реальных пацанов которые так же "поползали на брюхе"  как и я со всеми этими заморочками.
Да ты еще никуда не "ползал", реальный пацан.   Подмигивающий  Улыбающийся Смеющийся

А мнение "абстрактных теоретиков" которые сами этого не делали но что-то слышали - ну оно столько же и стОит  Улыбающийся
Да кое что делали, и на "крутых" программеров, которые ничего не умеют и не хотят учиться, я уже насмотрелся... Еще со времен FIDO. Старенький я уже, такие заявления уже давно не впечатляют  Улыбающийся
Записан
spectre71
Гость
« Ответ #37 : Сентябрь 11, 2009, 20:24 »

Мне кажется Вы несколько увлеклись "ролей учителя" Улыбающийся
Я говорю о конкретных проблемах которые я испытал на своей шкуре, а не вычитал в умной книге. Мое мнение наивно и.т.п.? Очень может быть, я это переживу Улыбающийся Но я хотел бы видеть/слушать реальных пацанов которые так же "поползали на брюхе"  как и я со всеми этими заморочками. А мнение "абстрактных теоретиков" которые сами этого не делали но что-то слышали - ну оно столько же и стОит  Улыбающийся

Примите мои искренние извинения и.т.п. за то что я поднял "неудобную" тему
Будьте здоровы, умолкаю
Тебе пытались помочь, ты этого не ценишь. Грустный
Твои заморочки: "которые ты испытал на своей шкуре" - это твои проблемы, учись - пиши - учись.
И про "абстрактных теоретиков" - что ты сам сделал, можешь показать, дать ссылочку?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #38 : Сентябрь 11, 2009, 21:09 »

Пацаны, давайте не понтоваться а давайте говорить по делу. Не буду я перед Вами отчитываться в каких конторах я работал последние 10(20) лет - ни к чему это. Никто медалей за прошлые заслуги не дает.

Я задал конкретные вопросы и предложил их обсудить. Со своей стороны я ничего не "высосал из пальца" ничего не придумывал а сказал то, что я реально имею в моем проекте. Чего ж на меня злиться? Улыбающийся Что я не такой  как Вы? Ну так это нормально, люди должны быть разные  Улыбающийся
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.106 секунд. Запросов: 23.