|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.02.2016, 17:35 | #1 |
Новичок
Джуниор
Регистрация: 03.02.2016
Сообщений: 1
|
Как лучше построить архитектуру программы
Опытные люди, подскажите, пожалуйста. Пишу игру танки(что-то вроде танков на денди, но с большим функционалом и в целом круче(движок box2d(для перемещения объектов, взрывов, реалистичности движения и т.д.),полностью разрушаемый мир и т.д.).
Хочу для танка создать отдельно класс. У меня есть 3 варианта решения(представлены на картинке), посоветуйте как лучше сделать? Танки будут различные по характеристикам, назначению и т.д., но всегда будут состоять из корпус+башня(ВАЖНО:: танк будет вращаться отдельно, корпус отдельно, у каждого своя анимация(выстрела, движения, взрыва и т.д.)). P.s. подумывал над паттерном абстрактная фабрика(сделать абстрактный танк и для него наследников, но они по сути будут отличаться только скоростью\типом снарядов\размером). Уместен ли будет этот паттерн? |
03.02.2016, 18:08 | #2 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
1 вариант - сразу в топку.
Танк не является ни башней, ни корпусом. Танк состоит из корпуса и башни. Можете унаследовать Tank от Unit. 2 вариант - тоже в топку. Такие моноклассы не позволят потом гибко модернизировать класс Tank. 3 вариант вполне, но friend не нужен. |
03.02.2016, 18:40 | #3 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Forrgit
Делайте как можно проще. Тут нет фабрик. Так как класс у вас всего один - Танк! Вот если бы у вас было-бы несколько API и несколько мостов. Тогда можно было-бы говорить о фабрике. Вам не нужен строитель который будет собирать этот танк так, как он состоит из двух элементов и всегда известна какими функциями они создаются. Вариант первый не правильный. Сразу бросается повтор. Танка, танка, танк. Танк вы предлагаете наследовать от башни и корпуса. Наследование означает многообразие. Т.е. наличие нескольких предков. Так где ещё будут использоваться башни но не у танка и где будут использоваться корпус не у танка? Ответ у вас только один танк и нет ничего более. По поводу третьего и второго вида разделяй и властвуй. Если хотите создать себе трудностей разделяйте. Вам же работать с отдельными классами. И их отдельно поддерживать. Разделение полезно когда объект сложный. А когда у вас куча простых, то их лучше объединять в структуры. Когда у вас команда вы можете поручить разработку одного класса одному рабочему. А другому рабочему другой класс.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как строить архитектуру приложения? | jean666 | Общие вопросы по программированию, компьютерный форум | 10 | 28.09.2015 20:30 |
Как узнать архитектуру процессора на неттопе? | qewertyns | Компьютерное железо | 8 | 16.04.2013 23:22 |
Где лучше хранить настройки программы | Paleolit | C++ Builder | 6 | 10.06.2012 10:33 |
Какую архитектуру выбрать? | k376 | Помощь студентам | 2 | 23.04.2008 23:57 |
Как лучше построить код для Radiobutton | Inbox | Общие вопросы Delphi | 4 | 29.01.2007 20:38 |