Почему Class # выделяет публичный метод в Ruby? - PullRequest
3 голосов
/ 20 февраля 2011

Почему MyClass.allocate публичный метод в Ruby?При каких обстоятельствах вы хотите создать объект, но не запускать на нем initialize?

Ответы [ 2 ]

4 голосов
/ 20 февраля 2011

Десериализация приходит на ум.Класс может быть сериализуемым, но может не иметь инициализации, которая не принимает аргументов, и этот код не должен инициализировать его чем-то просто для немедленной отмены этой работы.

По сути, любой сценарий, в котором вы инициализируете объект по-другомутогда ваш типичный случай становится полезным разделить эти два шага.

0 голосов
/ 20 февраля 2011

иногда вы хотите «избежать» метода инициализации, если вы хотите по какой-то причине замкнуть его (например: Time.allocate может быть «быстрее», чем получение объекта реального времени)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...