Recentemente ho iniziato a utilizzare il modulo MooseX::Declare. Lo adoro per la sua sintassi. È elegante e pulito. Qualcuno si imbatte in casi in cui si vorrebbe scrivere molte funzioni (alcune delle quali grandi) all'interno di una classe e la definizione della classe in esecuzione in pagine? C'è qualche soluzione alternativa per rendere la definizione della classe solo per avere le funzioni dichiarate e la definizione della funzione reale al di fuori della classe?Posso definire funzioni al di fuori di una classe usando MooseX :: Declare?
Quello che sto cercare è qualcosa di simile -
class BankAccount {
has 'balance' => (isa => 'Num', is => 'rw', default => 0);
# Functions Declaration.
method deposit(Num $amount);
method withdraw(Num $amount);
}
# Function Definition.
method BankAccount::deposit (Num $amount) {
$self->balance($self->balance + $amount);
}
method BankAccount::withdraw (Num $amount) {
my $current_balance = $self->balance();
($current_balance >= $amount)
|| confess "Account overdrawn";
$self->balance($current_balance - $amount);
}
vedo che c'è un modo per rendere la classe mutevole. Qualcuno sa come farlo?
Invia una e-mail all'autore, ringrazialo per il suo eccellente lavoro, digli che ami la sintassi, e poi chiedigli se pensa che una cosa del genere sia possibile, e se sarebbe disposto a farlo. Il peggio che può succedere è che può dire "no". Un altro posto per postare sarebbe la mailing list delle alci. – daotoad