このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。
昨日書いた lvalue ルーチンを見てみよう。
sub salary : lvalue {
my $this = $_[0];
tie(my $reflector, 'Employee::Reflector',
$this, \&get_salary, \&set_salary);
$reflector;
}
検証は get_salary, set_salary で行っているので
lvalue ルーチン自体はかなりすっきりした。
では、同じようなプロパティを追加してみよう。
「部署」プロパティだ。
sub department : lvalue {
my $this = $_[0];
tie(my $reflector, 'Employee::Reflector',
$this, \&get_department, \&set_department);
$reflector;
}
salary と同じく、実際の取得・代入は、
get_department と set_department として別で定義する。
非常に簡単に実装できるようになった。
しかし、これまた無駄に見えてこないだろうか。
lvalue ルーチンはほとんど上と同じなのだ。
lvalue ルーチン内のメソッドをさらに別に分け、
それを呼び出す形に変形することはできるが、
lvalue ルーチン自体は必ず書かなければならない。
プロパティが増えれば、プロパティの数だけ必要だ。
プロパティの構文を実現するためだけに、
同じような記述を繰り返し書くのは面倒だ。
どうにかならないだろうか。