24.07.2017 / 19:15 | |
aNNiMON Супервизор Сейчас: Online
Имя: Витёк Регистрация: 11.01.2010
| Так же инициализация объектов вне конструктора - исправил.private final Rectangle rect = new Rectangle();
public TypeObjectWorld type = TypeObjectWorld.STATIC;
Сделал что бы тип объекта задавался через enum.А где же твоё ООП? player = new WorldObject();
Ну создай ты: class Player extends WorldObject implements DynamicableObject {
И уже по интерфейсу будет понятно, что объект динамический. Приметить можно, но не обезательно. Тут он не нужен.Тебе видней. Добавляешь ты, такой, параметры в конструктор класса, а потом ищешь, в каком же классе ты его инициализировал. Почитай ещё про Dependency Injection, как раз твой случай. __________________
let live Изменено aNNiMON (24.07 / 19:16) (всего 1 раз) |
24.07.2017 / 19:26 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| Кстати про DI в яве, там все в xml надо описывать?
__________________
Магистр Мёда |
24.07.2017 / 19:57 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| Блин. Ну как вам это объеснить? МНЕ САМ ТЕЛЕФОН лет сто ПОДКЛЮЧАТЬ. Пока запустится программа для синхронизации Nokia, пока синхранизирутся, минут 5-10 уходит. А если так каждый раз ТОЛЬКО для залития на гит, то ой-ой-ой моей психике. Про код: 1. Ну инициализация вне конструктора Ну... Я не всё просмотрел. 2. ООП? Интерфейс для динамического и статичного? Зачем? Они ничем обсолютно не различаются, только то что динамически каждый тик перезаписывают в сетку. И всё. А с интерфейсом определять куда относится объект - будет дольше. Так как у меня будет не 1 объект динамический, а много. Например теже предметы которые выпали - дроп. Они динамические. А статичные будут как... Гора. Не сдвинуть и ничего с ними не сделать. То есть ещё в move сделаю if(type == TypeObjectWorld.STATIC) return;
то есть статичные можно сдвинуть только на прямую изменить координаты. __________________
Смерть правит миром |
24.07.2017 / 20:00 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| aNNiMON, а я прошлый код смотрел и чуть не застрелился Цитата Death: не удобно ..., и читабильность падает.Володя против системы Читабельность падает когда логически целый класс разбросан по другим. Может, стоило с бейсика начать?))0 Пока запустится программа для синхронизации Nokia3G модем не вариант купить? Death, про конструкторы: делай нормально, не надо выдумывать. Вить, а ведь он еще хочет MVC вот туда прикрутить __________________
わからない!! Изменено Витаминыч (24.07 / 20:07) (всего 4 раза) |
24.07.2017 / 20:08 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| Витаминыч, Не ухади от темы. 1. Купить модем. Отец всё говорит, что купит, но сейчас деньги на другое уходят. Так что не как. Може к НГ 2018 будет. 2. Первый код - тот что новый пишу, первый что скинул? Не джавистам не привычно такое) 3. MVC - будет разделена логика от отрисовки и данные отдельно. Там будет много наследования. __________________
Смерть правит миром Изменено Death (24.07 / 20:09) (всего 1 раз) |
24.07.2017 / 20:11 | |
aNNiMON Супервизор Сейчас: Online
Имя: Витёк Регистрация: 11.01.2010
| минут 5-10 уходитНичоси Ничоси 2. Пожалуйста, не будь Богданом. У тебя не хайлоад проект (нынче хипстерское словосочетание), где критически важна производительность. Эта проверка делается не намного медленнее твоего if (type == TypeObjectWorld.STATIC), к тому же у тебя она в коде лишь при добавлении, а добавление не так часто может вызываться. А коль так печёшься о производительности, почему ж лямбду с forEach не уберёшь из метода рендера объекта? objs.forEach(ob -> ob.draw(b)); в классе World. __________________
let live Изменено aNNiMON (24.07 / 20:12) (всего 2 раза) |
24.07.2017 / 20:17 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| aNNiMON, Хех... Так. А интерфейс всё же чем мне поможет? Только что бы сравнивать тот это объект или нет? И да, как можно проверить, тот это интерфейс или нет? Это как Object проверять через instanceof? И да, говоришь forEach медленее for(int i...)... добовление происходит каждый тик. Так как я очищаю все динамически объекты из списка и опять туда их добовляю. __________________
Смерть правит миром Изменено Death (24.07 / 20:18) (всего 1 раз) |
24.07.2017 / 20:20 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Death, да прочти ты уже наконец, зачем интерфейсы нужны! http://developer.alexanderklimov.ru/android/java/interface.phpИ не форич медленный а лямбда в нем Death, и что значит не ждавистам? Ты про себя штоль? __________________
わからない!! Изменено Витаминыч (24.07 / 20:21) (всего 1 раз) |
24.07.2017 / 20:26 | |
Death Пользователь Сейчас: Offline
Имя: Смерть Регистрация: 31.07.2015
| Витаминыч, Ну?! Интерфейсы сгодятся для API. Зачем их лепить туда и сюда? Они для методов которые нужно реализовать. Когда кто будет использовать, то: Interface in = new ClassImplemendsInterface(); in.methor1(); in.methor2();
А не что бы определить тот это объект ил не тот, или даже тот бред для гетеров и сетеров.(ладно гетеры, но только для сетеров - это через край бред)
__________________
Смерть правит миром |
24.07.2017 / 20:33 | |
aNNiMON Супервизор Сейчас: Online
Имя: Витёк Регистрация: 11.01.2010
| Цитата Death: И да, как можно проверить, тот это интерфейс или нет? Это как Object проверять через instanceof?Садись перечитывать учебник, двойка тебе. Джава за тебя может всё сделать, а ты всё ручками пытаешься. Смотри: http://ideone.com/VKkBTIКстати, заодно и Витаминыча вспомнил, геттер в интерфейс впихнул __________________
let live Изменено aNNiMON (24.07 / 20:36) (всего 1 раз) |