![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 18
|
Подскажите как правильно спроектировать классы.
Задача: Пусть пишем гонки. Есть несколько авто, которые гоняются. Одно авто управляется юзером, остальные AI. Думаю схема должна быть такая: Класс Car - тут различная инфа об авто (цвет, форма, скорость и др характеристики) Класс UserControl - тут реакция на нажатие кнопок, может мыши, ну т.е. ручное управление. Класс AIControl - тут уже ком сам управляет авто. Тут все более менее понятно. Теперь перейдем к классу Car Пускай там есть следующие поля: - coords - координаты авто - speed - скорость ..... еще много чего ........ - control - а вот тут должен быть объект либо класса UserControl либо AIControl, в зависимости от того кто должен управлять авто. какого типа должно быть поле control? Планируется что классы AIControlи UserControl имеют функцию скажем loop, которая и "решает" что делать с авто. Тут как мне кажется напрашивается использование интерфейсов. Что то типа этого (ICarControl): package Classes { public interface ICarControl { function loop(bezier: MyBezier, time: Number, speed: Number, dx: Number): void; } } Так вот, если в классе Car я объявляю так: То при попытке положить туда объект класса AIControl или UserControl компилятор ругается, что не может преобразовать AIControl в ICarControl. Как быть? |
|
|||||
|
Цитата:
__________________
...вселенская грусть |
|
|||||
|
.
|
Как это выглядит. Взгляд со стороны.
Проектирую самолет Boeing 7337 (использую крылья, фюзеляж и шасси). Подскажите как правильно спроектировать самолет (я полный нуб в самолетостроении). Ответ: правильно спроектировать самолет помогает опыт. Набирайтесь оного. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|