Я недавно начал использовать модуль MooseX::Declare. Мне нравится его синтаксис. Это элегантно и аккуратно. Кто-нибудь сталкивался с ситуациями, когда вы хотели бы написать много функций (некоторые из них большие) внутри класса и определения класса, запущенного на страницах? Есть ли какое-либо обходное решение, чтобы определение класса имело только объявленные функции и определение реальной функции вне класса?Могу ли я определить функции вне класса с помощью MooseX :: Declare?
То, что я смотрю на это что-то вроде этого -
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);
}
Я могу видеть, что есть способ сделать класс изменяемым. Кто-нибудь знает как это делать?
Отправьте электронное письмо автору, благодарите его за отличную работу, скажите ему, что вы любите синтаксис, а затем спросите его, считает ли он, что такое возможно, и если он захочет это сделать. Худшее, что может случиться, он может сказать «нет». Другим местом для публикации будет список рассылки лосей. – daotoad