Packages / openSUSE Tumbleweed / Unspecified / perl-Class-Method-Modifiers
[Source: perl-Class-Method-Modifiers]
Package: perl-Class-Method-Modifiers (2.15-1.12)
[Project overview: perl-class-method-modifiers]
Надає модифікатори методів у стилі Moose
Модифікатори методів — зручна можливість зі світу CLOS (Common Lisp Object
System).
У найпростішому вигляді модифікатор методу — це просто метод, який викликає
'$self->SUPER::foo(@_)'. Особисто мені важко запам'ятати саме цей виклик,
тому мої класи рідко переспрямовують до своїх базових класів. Дуже погано!
'Class::Method::Modifiers' надає три модифікатори: 'before', 'around' та
'after'. 'before' і 'after' виконуються безпосередньо до і після методу, який
вони змінюють, але насправді не можуть вплинути на цей оригінальний метод.
'around' виконується замість оригінального методу, з хуком для легкого виклику
цього оригінального методу. Див. розділ MODIFIERS для докладнішої інформації
про роботу окремих модифікаторів.
Явна перевага використання 'Class::Method::Modifiers' полягає в тому, що ви
можете визначити кілька модифікаторів в одному просторі імен. Ці окремі
модифікатори не потребують знання одне про одного. Це полегшує проєктування
zверху вниз. Майте базовий клас, який надає скелетні методи кожної операції, і
нехай плагіни змінюють ці методи, щоб заповнити деталі.
Батьківські класи не мусять знати про 'Class::Method::Modifiers'. Це означає,
що ви повинні мати змогу змінювати методи в _будь-якому_ підкласі. Див.
Term::VT102::ZeroBased для прикладу створення підкласів із
'Class::Method::Modifiers'.
Коротко: 'Class::Method::Modifiers' розв'язує проблему забезпечення виклику
'$self->SUPER::foo(@_)' і надає для цього чистіший інтерфейс.
Починаючи з версії 1.00, 'Class::Method::Modifiers' у деяких випадках швидший
за Moose. Див. _benchmark/method_modifiers.pl_ у дистрибутиві Moose.
'Class::Method::Modifiers' також надає додатковий тип «модифікатора», 'fresh';
див. нижче.
Other Packages Related to perl-Class-Method-Modifiers:
Download perl-Class-Method-Modifiers
| Architecture | Package Size | Installed Size | Files |
|---|
| noarch | 32 KiB | 48 KiB | [list of files] |
Шляхи файлів пакета (10)
Paths come from the repository package-file index for the observed builds. They describe archive/package associations, not every file that will exist on a running system after maintainer scripts, alternatives, generated state, diversions, or installation choices.
- /usr/lib/perl5/vendor_perl/5.44.0/Class
- /usr/lib/perl5/vendor_perl/5.44.0/Class/Method
- /usr/lib/perl5/vendor_perl/5.44.0/Class/Method/Modifiers.pm
- /usr/share/doc/packages/perl-Class-Method-Modifiers
- /usr/share/doc/packages/perl-Class-Method-Modifiers/Changes
- /usr/share/doc/packages/perl-Class-Method-Modifiers/CONTRIBUTING
- /usr/share/doc/packages/perl-Class-Method-Modifiers/README
- /usr/share/licenses/perl-Class-Method-Modifiers
- /usr/share/licenses/perl-Class-Method-Modifiers/LICENSE
- /usr/share/man/man3/Class::Method::Modifiers.3pm.gz
Field source: openSUSE Tumbleweed OSS revision tumbleweed-oss-multiarch:4db10cdde3ad82c7e22be35753c9e164b4bdd30f92db4aee17a0d4c94c5f902f