2008-05-30から1日間の記事一覧

Mooseでデザパタ - Chain Of Responsibilityパターン

#!/usr/bin/env perl { package Trouble; use Moose; has number => ( is => 'rw', isa => 'Int', required => 1 ); } { package Support; use Moose::Role; use Perl6::Say; has name => ( is => 'rw', isa => 'Str', requ…

make_immutable

__PACKAGE__->meta->make_immutableを本当は書こうかと思ったけれど、ちょっと冗長だからやめようかなと。Mooseの実装のように、どこか一カ所にまとめて書いちゃったほうがいい気がするなぁ。immutableにする処理とかは。全部のクラスの最後に書くのは、なん…

Mooseでデザパタ - Adapterパターン

{ package Banner; use Moose; use Perl6::Say; has string => ( is => 'rw', isa => 'Str', required => 1 ); sub show_with_paren { my $self = shift; say '( ' . $self->string . ' )'; } sub show_with_aster { my $se…

Mooseでデザパタ - Singletonパターン

#!/usr/bin/env perl use strict; use warnings; use Perl6::Say; { package Single; use MooseX::Singleton; } sub main { my $obj1 = Single->instance; my $obj2 = Single->instance; if ( $obj1 == $obj2 ) { say "obj1とobj2は同じインスタンスです。";…