
Pretorian
08.06.2016
07:18:50
патерн = модель
наплодили слов )

v
08.06.2016
07:19:05
образец же

Pretorian
08.06.2016
07:19:15
во во

Google

Anton
08.06.2016
07:24:18
Парни, а вы сингтон для объектов юзаете?
_и дамы_

Pretorian
08.06.2016
07:30:00
Конечно
Это статический метод
class MyClass
class « self
def hello
puts "Привет от #{self}!"
end
end
end
MyClass.hello

Eugene
08.06.2016
07:31:32
@davydovanton двойной агент )

Anton
08.06.2016
07:31:56
Тройной ;)

Eugene
08.06.2016
07:32:04
awwwwwww

Pretorian
08.06.2016
07:32:09
Что за агент?

Anton
08.06.2016
07:32:53
Национальной безопастности же

yopp
08.06.2016
08:41:20

Антон
08.06.2016
08:47:06
ой ли

yopp
08.06.2016
08:47:41

Google

yopp
08.06.2016
08:48:05
у объекта есть метакласс, вот твой синглтон

Антон
08.06.2016
08:48:08
люблю такие ответы :)

yopp
08.06.2016
08:48:15
он уже сразу назначен к константе
в руби всё синглтон ваще

Антон
08.06.2016
08:48:39
тогда зачем в рубях такая сущность выделена отдельно?

yopp
08.06.2016
08:48:41
двоечники, блин

Антон
08.06.2016
08:48:49
хуёичники

yopp
08.06.2016
08:49:03

Антон
08.06.2016
08:49:29
http://ruby-doc.org/stdlib-2.0.0/libdoc/singleton/rdoc/Singleton.html

yopp
08.06.2016
08:51:43
господи, для удобства
и тебе надо через instance обращатся
а с module Foo; class << self; def foo; end; end; не надо

Антон
08.06.2016
08:53:16
ну не надо вот столько снисхождения

yopp
08.06.2016
08:53:33
не надо с «ой ли» начинать

Anton
08.06.2016
08:54:55
у классического стинглтона есть конструктор.
и как раз Singleton из стдлибы по всем канонам книжек по паттернам реализует lazy-инициализацию. модули такое не умеют из коробки и не должны уметь

Stanislav
08.06.2016
08:55:11
?

Антон
08.06.2016
08:55:36
ну вот я обозначаю свои сомнения в удобной мне форме, и вроде "ой ли" не оскарбительная форма

yopp
08.06.2016
08:56:40

Google

yopp
08.06.2016
08:57:49
в смысле @async_prince
а не синглтон ;)
но про конструктор валидный поинт, да

Pretorian
08.06.2016
08:58:59
А зачем конструктор синглетону?
Это же обычный статический метод

yopp
08.06.2016
09:00:06
канонически синглтон это _объект_ который существует в единственном экземпляре

Pretorian
08.06.2016
09:00:30
Типо консоль
А, ну да

yopp
08.06.2016
09:00:50
а так как это объект, у него должен быть конструктор, который позволит задать его начальное состояние

Pretorian
08.06.2016
09:01:06
Только проинициализировать
Ладно, ладно, чуть попутал

yopp
08.06.2016
09:02:01

Pretorian
08.06.2016
09:02:16
Но с другой стороны, можно так же проинициализировать статические свойства
Так что класс сам по себе уже синглтон
Сами же придумали новые словечки, для обычных вещей
Хотя ... Вот чем отличается одно от другого
class Duck
def self.quack
puts "Class quack"
end
end
Duck.quack
class MyClass
class « self
def hello
puts "Привет от #{self}!"
end
end
end
MyClass.hello
???

yopp
08.06.2016
09:06:30
ни чем

Pretorian
08.06.2016
09:06:53
То что нельзя создавать же объекты
у второго варианта
Это имеется ввиду как синглетон?

Google

Vladimir
08.06.2016
09:07:49
просто в руби есть singleton_class у каждого объекта. ну тогда можно любой объект считать синглтоном своего синглтон-класса. но только зачем попусту расходовать терминологию)))

Pretorian
08.06.2016
09:08:39
Я как понимаю синглетон это класс от которого нельзя породить объект, я прав? или ошибаюсь?

yopp
08.06.2016
09:08:44
def self.quack -> self указывает на metaclass Duck

Vladimir
08.06.2016
09:08:59

yopp
08.06.2016
09:09:12
class << self; мы входим в контекст metaclass Duck
и внутри контекста self будет всегда указывать на metaclass Duck
но результат идентичный

Vladimir
08.06.2016
09:10:07

Admin
ERROR: S client not available

Pretorian
08.06.2016
09:10:51

yopp
08.06.2016
09:11:19
в руби просто собственный класс объекта называют синглтон-классом
но это плохая терминология

Pretorian
08.06.2016
09:11:28
Сам класс уже является объектом хранящий свойства и методы

yopp
08.06.2016
09:11:32
лучше или метакласс или eigenclass

Vladimir
08.06.2016
09:12:03
да, возможно
eigenclass более общепринято

yopp
08.06.2016
09:12:35

Vladimir
08.06.2016
09:12:49

yopp
08.06.2016
09:12:52
да

Vladimir
08.06.2016
09:12:57
где там такой метод?

Google

Vladimir
08.06.2016
09:13:05
покажи на ruby-doc

Pretorian
08.06.2016
09:13:46
Похоже все об одном и том же, но мешает терминология и влияние различных яп )

v
08.06.2016
09:14:03
да не, ты все про статические методы

yopp
08.06.2016
09:14:05
как интересно, а его больше нет
щас найду в гите где было
видать таки в релиз 2.x не вошло в итоге

Vladimir
08.06.2016
09:14:42
метод называется `singleton_class` инфа 100%

Pretorian
08.06.2016
09:14:56

Vladimir
08.06.2016
09:16:14
а раньше никакого метода не было вообще, и этот класс брали через sclass = class << self; self; end

yopp
08.06.2016
09:17:02
и оно у меня в голове отпечаталось
или я чота путаю. ноhttps://github.com/ruby/ruby/commit/a3e10f380ab276cc9192418d2a19c7e0ffc86046

Vladimir
08.06.2016
09:19:31
а классический синглтонец это класс с getInstance, который при первом вызове в потокобезопасной манере создает инстанс и запоминает его.
и можно юзать конструкторы как и у обычных классов

yopp
08.06.2016
09:20:07
https://github.com/ruby/ruby/blob/trunk/class.c#L17
:D
тогда не надо вот этого с instance

Vladimir
08.06.2016
09:28:37