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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Объекты и объект  (Прочитано 3541 раз)
deaks
Гость
« : Февраль 06, 2011, 00:41 »

Добрый вечер)

ребят, посоветуйте, как лучше реализовать такую ситуацию.

В системе моделирования присутствуют объекты. На каждом шаге модельного времени может создаваться 0..N объектов и при этом он должен взаимодействовать с остальными.

То есть получается есть классы Objects и Object. Класс Objects включается в себя массив из Object.
А в классе Object должен храниться указатель на Objects? Как-то странно получается. Или меня клинит Улыбающийся
Записан
Akon
Гость
« Ответ #1 : Февраль 06, 2011, 10:12 »

Двунаправленная связь, ничего странного.

Objects хранит Objectы в контейнере, например, QList, и предоставляет const ссылку на контейнер в интерфейсе, чтобы непосредственно в контейнер ничего не добавлялось и не удалялось. Добавление и удаление Object-ов производится через интерфейс Objects для реализации требуемых побочных эффектов.

Objects вместо предоставления контейнера (предоставление контейнера - это выриант с наименьшими затратами на написание, повсеместно используется в самой Qt) может предоставить итераторы, в результате вызывающий клиентский код будет чуть лаконичнее.
Записан
deaks
Гость
« Ответ #2 : Февраль 06, 2011, 11:46 »

Вот именно так у меня сейчас и реализовано)

волнует другое - удовлетворяет ли это парадигмам ООП?
Записан
Fat-Zer
Гость
« Ответ #3 : Февраль 06, 2011, 12:33 »

Вот именно так у меня сейчас и реализовано)

волнует другое - удовлетворяет ли это парадигмам ООП?
Конечно удовлетворяет, если правильно реализовано... Если что смотри паттерн компоновщик. (если кратко, то objects тоже наследник object'а)
Записан
deaks
Гость
« Ответ #4 : Февраль 06, 2011, 14:36 »

ну уж не знаю, я придерживаюсь только самого главного "паттерна" - mvc )))

но компоновщик интересен! спасибо
Записан
_govorilka
Гость
« Ответ #5 : Февраль 06, 2011, 15:32 »

Akon
+1

Реализация подобных штук:
Код:
class Object
{
    Object* m_parent;
    QList<Object*> m_children;
}

Подобное решение, мне кажется, очевидно. Тут можно и про патерны ничего не знать...  В Qt много мест, где такое используется, например сам QObject.
« Последнее редактирование: Февраль 06, 2011, 15:34 от _govorilka » Записан
deaks
Гость
« Ответ #6 : Февраль 06, 2011, 16:31 »

да я же не говорю, что не знал))) так и реализовал)

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

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Февраль 06, 2011, 17:08 »

а вообще-то это один из вариантов "дерева"  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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