
Stas
09.09.2016
18:27:54
Дагером сделал

Sergey
09.09.2016
18:28:06

Stas
09.09.2016
18:28:19
зачем что-то делать через enum, если есть даггер

Gerc
09.09.2016
18:28:29

Google

Sergey
09.09.2016
18:28:39
Да, болд гай

Vitaliy
09.09.2016
18:29:20

Gerc
09.09.2016
18:29:22

Nikolay
09.09.2016
18:29:49

Stas
09.09.2016
18:30:26
@gercqq Я не спрашивал, как делать сингтоны)

Vitaliy
09.09.2016
18:31:00
Идеология выставляет разоаботчику дополнительную задачу "писать все так, чтобы исключить тормоза там, где их можно избежать"

Nikolay
09.09.2016
18:31:20
А как через Rx можно провернуть следущую штуку:
Запро возвразает массив int для каждого из которых надо сделать запрос и вернуть объект?

Sergey
09.09.2016
18:31:43

Gerc
09.09.2016
18:32:02

Stas
09.09.2016
18:32:18
или flatMap
больше того, сами вызовы могут быть в разных потоках

Gerc
09.09.2016
18:33:25

Vitaliy
09.09.2016
18:33:53
Кого убедил?

Google

Vitaliy
09.09.2016
18:33:57
Почему любимые?
Что жрут?

Nikolay
09.09.2016
18:34:09
И тогда еще вопрос.
Есть запрос который возвращает список объектов либо строку с кодом ошибки. Как в Rx можно такое обработать?

Gerc
09.09.2016
18:34:15

Александр
09.09.2016
18:34:31
даггеры, фигагеры, обычный синглтон класс форевер

Gerc
09.09.2016
18:35:38

Sergey
09.09.2016
18:35:39
Упс )

Stas
09.09.2016
18:36:25
Сколько операторов if нужно что-бы сделать православный threadsafe lazy singleton на java?
вопрос к нехипстерам

Gerc
09.09.2016
18:36:46
Нисколько

Stas
09.09.2016
18:36:50
кек))

Вжик
09.09.2016
18:36:53
https://play.google.com/store/apps/details?id=com.silver.skanavi
вот как можно было выкатить такое в маркет

Stas
09.09.2016
18:36:56
ответ не верный

Vitaliy
09.09.2016
18:37:27

Stas
09.09.2016
18:37:48
lazy инициализация
и еще параметр для конструктора
а лучше несколько

Gerc
09.09.2016
18:38:34
Меньше чем в твоем даггере писать

Максим
09.09.2016
18:42:13
И не придрешься же). Потестить через юниты тоже можно. Но все равно выглядит плохо

Google

Gregory
09.09.2016
18:42:40
а, хотя нет, один таки нужен

Alexey
09.09.2016
18:43:35

Максим
09.09.2016
18:44:23
Хотя не, заменить же объект невозможно
Поэтому потестить не получится

Gregory
09.09.2016
18:44:44
но можно и без ифов:
public static synchronized Thing getInstance(){
return sharedInstance==null ? (sharedInstance=new Thing()) : sharedInstance;
}

Stas
09.09.2016
18:45:01
более подробно...
Class A {
private A(b : B, c: C) {
...
public static A getSingletonThreadSafe(b: B, c:C) {
//кекеке
}
}
это скажем апи модуль, который зависит от http модуля.
Его может дернуть поток в service, а может ui поток. Вам не известно, кто будет первым.
2 апи модуля вам иметь явно не хочется
ну... ? : тоже условный оператор. В котлине и скале это if

Nikolay
09.09.2016
18:48:08
может попсово но вроде два If

Gerc
09.09.2016
18:48:16
Причем тут кто первым дернет. И вообще зачем параметры передавать в гетинстанс

Александр
09.09.2016
18:48:26

Gerc
09.09.2016
18:48:38

Александр
09.09.2016
18:49:17
С хабра
http://stackoverflow.com/questions/16106260/thread-safe-singleton-class

Gerc
09.09.2016
18:49:34

Stas
09.09.2016
18:50:36
https://ru.wikipedia.org/wiki/Double_checked_locking

Alexander
09.09.2016
18:50:40
ответ не верный
ответ с холдером канонически верен и самый правильный способ объявить синглтон как по мне, другой вопрос что ты добавил дополнительное условие с параметрами

Stas
09.09.2016
18:51:23
ну параметр это что-бы медленно подойди к дагеру
public class Singleton {
private static volatile Singleton instance;
public static Singleton getInstance(String arg) {
Singleton localInstance = instance;
if (localInstance == null) {
synchronized (Singleton.class) {
localInstance = instance;
if (localInstance == null) {
instance = localInstance = new Singleton(arg);
}
}
}
return localInstance;
}
}

Google

Stas
09.09.2016
18:51:59
что-то вроде такого.

Gerc
09.09.2016
18:52:00
Чтоб быстро убежать от даггера, заглянув на сгенерированный им код

Stas
09.09.2016
18:52:27
ну...есть модная di от google которая быстрее дагера

Gerc
09.09.2016
18:52:55
Она и есть. Про нее и говорю

Sergey
09.09.2016
18:53:07
Гугл и сам юзает даггер

Gerc
09.09.2016
18:53:36
И потом гугл плюс тормозит

Stas
09.09.2016
18:53:50
кек)

Sergey
09.09.2016
18:53:57

Gerc
09.09.2016
18:54:14

Admin
ERROR: S client not available

Nikolay
09.09.2016
18:54:17
А кто-нибудь сталкивался с проблемами когда был действительно необходим правильный синглтон на енамах, холдере или double checked?

Alexander
09.09.2016
18:54:28

Sergey
09.09.2016
18:54:30

Gerc
09.09.2016
18:54:31

Stas
09.09.2016
18:54:54
у тебя 3 потока и каждый хочет синглтон объект

Gerc
09.09.2016
18:54:59
?
На даггер перепишут и перестанет точно тормозить

Sergey
09.09.2016
18:55:11
Даггер это DI

Stas
09.09.2016
18:56:06
а конструктор слишком тяжелый, что-бы его static делать.
одно из решений всякие double checking или hodler

Google

Sergey
09.09.2016
18:58:13
Если вы передаёте объекты в класс из вне то это DI )

ThisIs
09.09.2016
18:58:21
Зачем DI в андроид?

Sergey
09.09.2016
18:58:59
А при чем DI и андроид

ThisIs
09.09.2016
18:59:28
Dagger - DI

Gerc
09.09.2016
18:59:37

Sergey
09.09.2016
18:59:53
Даггер это один из инструментов для DI

Gerc
09.09.2016
18:59:53
Но обычно его просто так суют

ThisIs
09.09.2016
19:00:38
Для тестов да, через интерфейсы все делают?

Sergey
09.09.2016
19:01:16
https://ru.m.wikipedia.org/wiki/Внедрение_зависимости

ThisIs
09.09.2016
19:02:28
?

Gerc
09.09.2016
19:04:50

ThisIs
09.09.2016
19:07:58
DI от гула Guice?

Sergey
09.09.2016
19:08:19
Dagger 2

ThisIs
09.09.2016
19:08:48
аа
ретрофит + даггер и? что есть из мейнстримов?
rx?

Sergey
09.09.2016
19:10:44
Retrofit + Rx

Nikolay
09.09.2016
19:11:11
А какие паттерны реализует Rx?

Sergey
09.09.2016
19:11:22
Observer

ThisIs
09.09.2016
19:11:59
и еще какой то орм

Nikolay
09.09.2016
19:12:26

Alexander
09.09.2016
19:12:56