最近、モジュール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 );
}
クラスを可変にする方法があることがわかります。誰かがそれを行う方法を知っていますか?