
Pavel ?
22.09.2016
17:40:22
я даже не знаю где его применить то

Oleksandr
22.09.2016
17:41:02
а так-то штука полезная, если с умом использовать

guga
22.09.2016
17:41:32

Google

guga
22.09.2016
17:41:41
Nil например

Oleksandr
22.09.2016
17:41:44
хех
class Foo { object Bar }

guga
22.09.2016
17:41:49
чем тебе не синглтон

Oleksandr
22.09.2016
17:41:51
сколько Bar-ов можно создать? :)
ну вот Nil — как раз "с умом", object для манипуляции с АДТ вообще идеальная штука

Evgenij
22.09.2016
17:45:30
Ну давайте определение - Одиночка - > Зачем эта штука нужна?
Почему не Дваштука или Триштука?

James Tiberius Kirk ?
22.09.2016
17:47:21
причин масса

Oleksandr
22.09.2016
17:47:47
случай первый — для сбора статики (в джаве собственно static, в скале/котлине object)
случай второй — для АДТ (который алгебраический тип данных)

Evgenij
22.09.2016
17:47:55
Почему - следствие вопрос?

James Tiberius Kirk ?
22.09.2016
17:48:11
допустим это какой-нибудь хэтэтэпэ клиент и тебе не нужна их пачка, а только один интанс на все точки его вызовов

Google

Oleksandr
22.09.2016
17:49:18
статические методы, утилиты всякие, или вон "http" из ответа выше

James Tiberius Kirk ?
22.09.2016
17:49:33
статика же и так в памяти хранится в единичном числе, зачем их хранить в одном месте
или я не так понял суть кейса

Oleksandr
22.09.2016
17:49:48
воооот, чем не синглтон? :)

James Tiberius Kirk ?
22.09.2016
17:50:24
ну так не надо руками свой синглтон пилить для того шоб статику юзать. А чувак хочет юзкейсы синглтонов узнать
когда прям хуяк-хуяк руками

Oleksandr
22.09.2016
17:50:50
ну в некоторых джвм языках именно static кейворда нету

Evgenij
22.09.2016
17:50:53
Подумай зачем нужен объект - но только один (копии его убют прогу) - синглтон это ооп диагноз

Oleksandr
22.09.2016
17:51:57
и, к слову, вынос статических методов в object-ы, имхо, гораздо правильнее с точки зрения того же ООП

James Tiberius Kirk ?
22.09.2016
17:52:36
существование статики это вообще неправильно в ооп
в скале с этим прикольно

Oleksandr
22.09.2016
17:52:43
шутишь?
почему неправильно?

Мытко
22.09.2016
17:53:11
потому что в скале так сказали

Pavel ?
22.09.2016
17:53:44
Дваштука и триштука вроде есть в гуаве)

Oleksandr
22.09.2016
17:53:57
в скале как раз статика как раз в обьектах
или я чего-то не понял из ваших ответов

Evgenij
22.09.2016
17:54:22

James Tiberius Kirk ?
22.09.2016
17:54:38
пользоваться им можно как статикой

Мытко
22.09.2016
17:54:55
http://stackoverflow.com/questions/4002201/why-arent-static-methods-considered-good-oo-practice

Google

Oleksandr
22.09.2016
17:54:56
это не синглтон, если определять синглтон как ГоФ

James Tiberius Kirk ?
22.09.2016
17:55:15
http://stackoverflow.com/questions/7026507/why-are-static-variables-considered-evil
и еще

Мытко
22.09.2016
17:56:12
я не согласен на самом деле с тем, что говорит чувак в первом посте
по моему всё ок
этот хайд метода - это логично
тут все методы виртуальные
так что
очевидно что это будет так работать

Alex
22.09.2016
17:57:50
почему неправильно?
Статический метод вызывается не через object reference. А ООП это как бы про объекты :)
Это исключительно мой логический вывод без технических оснований.

Oleksandr
22.09.2016
17:57:55

Pavel ?
22.09.2016
17:58:08

Мытко
22.09.2016
17:58:20

Oleksandr
22.09.2016
17:59:23

Evgenij
22.09.2016
17:59:31

Мытко
22.09.2016
18:00:10

Oleksandr
22.09.2016
18:00:22
class Foo { object Bar }

Pavel ?
22.09.2016
18:01:02

Evgenij
22.09.2016
18:01:09

Oleksandr
22.09.2016
18:01:20

Google

Evgenij
22.09.2016
18:02:40

Oleksandr
22.09.2016
18:02:57
через javap что ли?
или как "раскрыть" ?

Мытко
22.09.2016
18:04:17
напоминаю всем синглтон
https://i.imgur.com/Y65n2Uw.png

Pavel
22.09.2016
18:04:46

Evgenij
22.09.2016
18:04:48
object Bar WTF?

Pavel ?
22.09.2016
18:04:54
Я вот что-то не понимаю, чем обьект в скале не синглтон

Admin
ERROR: S client not available

Pavel ?
22.09.2016
18:05:08
Зачем класс

James Tiberius Kirk ?
22.09.2016
18:05:18

guga
22.09.2016
18:05:18

Oleksandr
22.09.2016
18:05:26
или с разных класслоадеров

Evgenij
22.09.2016
18:05:28

Pavel ?
22.09.2016
18:05:54

Pavel
22.09.2016
18:06:02

Oleksandr
22.09.2016
18:06:15

Pavel
22.09.2016
18:06:43
вот например
лучшая реализация singleton
public enum SomeSingeleton {
INSTANCE;
other code() {
}
}

Google

Pavel ?
22.09.2016
18:07:18
Скиньте байткод да посмотрим синглтон там иль не синглтон
Я вот вообще хз во что обьект в скале компилируется

Oleksandr
22.09.2016
18:08:14
scala> class Foo { object Bar }
defined class Foo
scala> :javap -c Foo
Compiled from "<console>"
public class Foo {
public Foo$Bar$ Bar();
Code:
0: aload_0
1: getfield #11 // Field Bar$module:LFoo$Bar$;
4: ifnonnull 14
7: aload_0
8: invokespecial #30 // Method Bar$lzycompute:()LFoo$Bar$;
11: goto 18
14: aload_0
15: getfield #11 // Field Bar$module:LFoo$Bar$;
18: areturn
public Foo();
Code:
0: aload_0
1: invokespecial #33 // Method java/lang/Object."<init>":()V
4: return
}
scala> :javap -c Foo#Bar
public Foo$Bar$ Bar();
Code:
0: aload_0
1: getfield #11 // Field Bar$module:LFoo$Bar$;
4: ifnonnull 14
7: aload_0
8: invokespecial #30 // Method Bar$lzycompute:()LFoo$Bar$;
11: goto 18
14: aload_0
15: getfield #11 // Field Bar$module:LFoo$Bar$;
18: areturn
пожалуйста

Evgenij
22.09.2016
18:08:46

Pavel ?
22.09.2016
18:08:51
Это класс фу обьект бар?

Oleksandr
22.09.2016
18:09:11
да, там в самом верху обьявление

Pavel ?
22.09.2016
18:09:28

Evgenij
22.09.2016
18:10:06
А байтмашина имхо одна - если ошибаюсь расскажи

Oleksandr
22.09.2016
18:10:13
интересует
1: getfield #11 // Field Bar$module:LFoo$Bar$
что, по-моему, намекает, что Bar не синглтон

Pavel ?
22.09.2016
18:11:11

Evgenij
22.09.2016
18:12:18
Не реально видел чувака он напрямую в байт кодах говорил джаве что делать?

Мытко
22.09.2016
18:13:16
https://i.imgur.com/svnTBWE.png

Oleksandr
22.09.2016
18:13:45
осталось пофиксить класслоадеры
ещё не труЪ синглтон

Мытко
22.09.2016
18:15:26
мне с енамом понравился синглтон
только он енам

guga
22.09.2016
18:15:50
да говори что не пишешь их руками, а доверяешь ioc

Мытко
22.09.2016
18:16:35
я и не пишу