gibi davranan Moose sınıf özniteliği, Moose sınıfında bir sınıf özniteliğim var, ancak ebeveynin değerini geçersiz kılan bir alt sınıf açısından Class::Data::Inheritable gibi çalışmasını isterim. Yani, alt sınıf, alt sınıftaki ayarlayıcıya kadar ana değerin mirasını alır, bu noktada değerler ayrı olur. Örneğin.Sınıf :: Data :: Inheritable
#!/usr/bin/perl
use warnings;
use strict;
{
package Foo;
use Moose;
use MooseX::ClassAttribute;
class_has Item => (is => 'rw');
}
{
package Bar;
use Moose;
extends 'Foo';
}
Foo->Item(4);
# This prints "4, 4" as expected
#
print join(", ", Foo->Item(), Bar->Item()) . "\n";
Bar->Item(5);
# Would like this to print "4, 5", but it prints "5, 5"
#
print join(", ", Foo->Item(), Bar->Item()) . "\n";
MooseX::ClassAttribute veya başka ile, bu etkiyi elde etmek için en iyi yolu nedir? Miras almayı bekleyen herhangi bir sınıf w/sınıf veri için istenen davranış gibi görünüyor.
FWIW Sınıfı :: Veri :: Miras, Moose ile çakışmaz. – Schwern
Schwern: Bu, Moose nesnelerinin Moose :: Object'ten miras alması gerekmesine rağmen, doğru olabilir, bu yüzden en azından çok muhtaç olur, bu da beni rahatsız eder. Ayrıca MooseX :: ClassAttribute'nin size verdiği Moose özellik beyanı iyiliğini almazsınız. –