Вниз  Совершенный код
- 24.07.2017 / 19:15
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Online
Так же инициализация объектов вне конструктора - исправил.
  1. private final Rectangle rect = new Rectangle();
  2. public TypeObjectWorld type = TypeObjectWorld.STATIC;

Сделал что бы тип объекта задавался через enum.А где же твоё ООП?
  1. player = new WorldObject();
Ну создай ты:
  1. class Player extends WorldObject implements DynamicableObject {
И уже по интерфейсу будет понятно, что объект динамический.

Приметить можно, но не обезательно. Тут он не нужен.Тебе видней. Добавляешь ты, такой, параметры в конструктор класса, а потом ищешь, в каком же классе ты его инициализировал. Почитай ещё про Dependency Injection, как раз твой случай.
__________________
 let live

Изменено aNNiMON (24.07 / 19:16) (всего 1 раз)
- 24.07.2017 / 19:26
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
Кстати про DI в яве, там все в xml надо описывать?
__________________
 Магистр Мёда
- 24.07.2017 / 19:57
Death
  Пользователь

Death 
Сейчас: Offline
Блин. Ну как вам это объеснить? МНЕ САМ ТЕЛЕФОН лет сто ПОДКЛЮЧАТЬ. Пока запустится программа для синхронизации Nokia, пока синхранизирутся, минут 5-10 уходит. А если так каждый раз ТОЛЬКО для залития на гит, то ой-ой-ой моей психике.

Про код:
1. Ну инициализация вне конструктора :кек2: Ну... Я не всё просмотрел.
2. ООП? Интерфейс для динамического и статичного? Зачем? Они ничем обсолютно не различаются, только то что динамически каждый тик перезаписывают в сетку. И всё. А с интерфейсом определять куда относится объект - будет дольше. Так как у меня будет не 1 объект динамический, а много. Например теже предметы которые выпали - дроп. Они динамические. А статичные будут как... Гора. Не сдвинуть и ничего с ними не сделать.
  То есть ещё в move сделаю
  1. if(type == TypeObjectWorld.STATIC) return;
то есть статичные можно сдвинуть только на прямую изменить координаты.
__________________
 Смерть правит миром
- 24.07.2017 / 20:00
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
aNNiMON, а я прошлый код смотрел и чуть не застрелился :-(

Цитата Death:
не удобно ..., и читабильность падает.
Володя против системы

Читабельность падает когда логически целый класс разбросан по другим.
Может, стоило с бейсика начать?))0

Пока запустится программа для синхронизации Nokia3G модем не вариант купить?
Death, про конструкторы: делай нормально, не надо выдумывать.

Вить, а ведь он еще хочет MVC вот туда прикрутить :кек2:
__________________
 わからない!!

Изменено Витаминыч (24.07 / 20:07) (всего 4 раза)
- 24.07.2017 / 20:08
Death
  Пользователь

Death 
Сейчас: Offline
Витаминыч, Не ухади от темы. :кек2:

1. Купить модем. Отец всё говорит, что купит, но сейчас деньги на другое уходят. Так что не как. Може к НГ 2018 будет.
2. Первый код - тот что новый пишу, первый что скинул? Не джавистам не привычно такое)
3. MVC - будет разделена логика от отрисовки и данные отдельно. Там будет много наследования.
__________________
 Смерть правит миром

Изменено Death (24.07 / 20:09) (всего 1 раз)
- 24.07.2017 / 20:11
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Online
минут 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
  Пользователь

Death 
Сейчас: Offline
aNNiMON, Хех... Так. А интерфейс всё же чем мне поможет? Только что бы сравнивать тот это объект или нет? И да, как можно проверить, тот это интерфейс или нет? Это как Object проверять через instanceof?

И да, говоришь forEach медленее for(int i...)... :stranno: :gy:

:ps: добовление происходит каждый тик. Так как я очищаю все динамически объекты из списка и опять туда их добовляю.
__________________
 Смерть правит миром

Изменено Death (24.07 / 20:18) (всего 1 раз)
- 24.07.2017 / 20:20
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
Death, да прочти ты уже наконец, зачем интерфейсы нужны! http://developer.alexanderklimov.ru/android/java/interface.php

И не форич медленный а лямбда в нем

Death, и что значит не ждавистам? Ты про себя штоль? :кек2:
__________________
 わからない!!

Изменено Витаминыч (24.07 / 20:21) (всего 1 раз)
- 24.07.2017 / 20:26
Death
  Пользователь

Death 
Сейчас: Offline
Витаминыч, Ну?! Интерфейсы сгодятся для API. Зачем их лепить туда и сюда? Они для методов которые нужно реализовать. Когда кто будет использовать, то:
Interface in = new ClassImplemendsInterface();
in.methor1();
in.methor2();

А не что бы определить тот это объект ил не тот, или даже тот бред для гетеров и сетеров.(ладно гетеры, но только для сетеров - это через край бред)
__________________
 Смерть правит миром
- 24.07.2017 / 20:33
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Online
Цитата Death:
И да, как можно проверить, тот это интерфейс или нет? Это как Object проверять через instanceof?
Садись перечитывать учебник, двойка тебе. Джава за тебя может всё сделать, а ты всё ручками пытаешься. Смотри: http://ideone.com/VKkBTI
Кстати, заодно и Витаминыча вспомнил, геттер в интерфейс впихнул :gg:
__________________
 let live

Изменено aNNiMON (24.07 / 20:36) (всего 1 раз)
Наверх  Всего сообщений: 233
Фильтровать сообщения
Поиск по теме
Файлы топика (7)