[Moscow.pm] new Class::($arg)

Vany Serezhkin ivan на serezhkin.com
Вт Авг 25 04:57:03 PDT 2009


Привет.

Я так внимательно посмотрел ... и что то мне этот пример не нравится,
вот идея нравится, а сам пример - странный.
если у нас возникает желание сделать из my $object =Class->new;  my
$object=Class->new->get_part; - То что то настолько неправильно в нашей
разработке ... что пряма ой.
А вот придумать корректный пример, когда действительно индиректный вызов
мешает рефакторингу ... у меня не получилось.
А если нет примеров использования, может и ну его ?

С другой стороны, вопли о том, что эта штука мешает принту.
Мне всегда не нравилась функция принт, с одной стороны она парсится
отдельным механизмом.
Это единственная функция с выделенным под неё парсером. И изза этого
невозможно переопределить CORE::print.
Вопрос, принтов в хэндлер конечно больше, но !
Конфликт случается именно изза такого поведения принта, а не изза
индиректных вызовов.
Индиректные вызовы изначально расчитывались на красивое написание
конструкции new Class.
Это нигде не мешает.
И я не понимаю эту бестпрактику по отношению к контруктору.


sub serialize {
    my $obj=shift;
    warn 'Serializing '.Dumper($obj);
    return $obj->serialize;
}
my $serizlized=serialize $object - Это довольно правильная конструкция,
которая позволяет мне привнести миксин глобально ко всем классам.
Надо только понимать, что это для дебажных целей.
Кстати, пример тоже очень плохой =)

>>> Есть еще другой довод, что типа такой код рефакторить не удобно.
>>>
>>> $x = new Class::X;
>>>
>>> сложнее превратить в
>>>
>>> $x = Class::X->new->xxx->yyy;
>>>       
>> Мне кажется, здесь как раз более наглядно получается, если добавить скобки:
>>
>> $x = (new Class::X)->xxx->yyy.
>>
>> Сразу видно, что X нужен лишь временно.
>>     
>
> Почему временно? Это chained методы, которые делают дело и возвращают $self :)
>
>   
>> --
>> Andrew Shitov
>> ______________________________________________________________________
>> andy на shitov.ru | http://shitov.ru
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>     
>
>
>
>   


-- 
Vany Serezhkin. Yandex. http://yandex.ru/



Подробная информация о списке рассылки Moscow-pm