MooseX::AttributeTree

Tela Software:
MooseX::AttributeTree
Detalhes de Software:
Versão: 0.04
Data de upload: 14 Apr 15
Licença: Livre
Popularidade: 9

Rating: nan/5 (Total Votes: 0)

As classes podem herdar atributos de suas classes pai. Mas às vezes você quer um atributo para poder herdar seu valor de um objeto pai. Por exemplo, é assim que os estilos CSS trabalhar em HTML.
MooseX :: AttributeTree é um módulo Perl que permite que você aplique o traço TreeInherit a qualquer atributo em sua classe. & Nbsp; Isso muda a forma como método de acesso do atributo funciona. Ao ler o valor do atributo, se nenhum valor foi definido para o atributo no objeto, o acessor irá retornar o valor do objeto pai (o que em si pode ser herdada).
O objeto pai não precisa ser do mesmo tipo que o objeto filho, mas ele deve ter um método com o mesmo nome do método de acesso do atributo (a menos que você fornecer um fetch_method). (Método do pai pode ser um método acessor atributo, mas não tem que ser.) Se o pai não tem o método certo, você vai ter um erro de execução, se a criança tenta chamá-lo.
Por padrão, MooseX :: AttributeTree espera obter o objeto pai chamando o método pai do objeto. No entanto, você pode usar qualquer método para recuperar o link, passando o parent_link adequado para a característica TreeInherit:
& Nbsp; tem antepassado => (
& Nbsp; é => 'rw',
& Nbsp; isa => 'objeto',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; tem value => (
& Nbsp; é => 'ro',
& Nbsp; traços => [TreeInherit => {parent_link => 'ancestral'}],
& Nbsp;);
Se o método retorna undef, então herança pára e o assessor vai se comportar como um acessor normal. (Normalmente, parent_link será o nome de um método atributo assessor, mas não tem de ser.)
Às vezes não é conveniente para o objeto pai para ter um método separado para cada atributo que um objeto filho pode querer herdar. Nesse caso, você pode fornecer um fetch_method ao traço TreeInherit.
& Nbsp; tem other_value => (
& Nbsp; é => 'ro',
& Nbsp; traços => [TreeInherit => {fetch_method => 'get_inherited'}],
& Nbsp;);
Com fetch_method, o valor herdado virá
& Nbsp; $ self-> pai-> get_inherited ('other_value');
em vez da habitual
& Nbsp; $ self-> pai-> other_value ();
Se o atributo tem um método predicado, ele informa se o atributo foi definido no objeto. O predicado não tem conhecimento de qualquer valor que pode ser herdado de um dos pais. Isto significa que $ object-> has_value pode retornar falso, embora $ object-> valor retornaria um valor (herdada da mãe).
Da mesma forma, o método mais clara do atributo (se houver) iria limpar o atributo somente nesse objeto, e nunca afetaria um objeto pai.
Sinopse
& Nbsp; pacote MyClass;
& Nbsp; usar Moose;
& Nbsp; usar MooseX :: AttributeTree ();
& Nbsp; tem parent => (
& Nbsp; é => 'rw',
& Nbsp; isa => 'objeto',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; tem value => (
& Nbsp; é => 'rw',
& Nbsp; traços => [qw / TreeInherit /]
& Nbsp;);

Requisitos :

  • Perl

Programas semelhantes

OpenHPI
OpenHPI

17 Feb 15

bandwidth
bandwidth

20 Feb 15

UMark
UMark

3 Jun 15

Outro software de desenvolvedor Christopher J. Madsen

mktime
mktime

2 Jun 15

VBinDiff
VBinDiff

2 Jun 15

Comentário para MooseX::AttributeTree

Comentários não encontrado
Adicionar comentário
Ligue imagens!