Changeset 12972 for docs

Show
Ignore:
Timestamp:
06/01/08 15:11:50 (6 years ago)
Author:
ka2u
Message:

Recipe1 completed, but probably I have some mistakes.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • docs/moose-ja/Moose/Cookbook/Recipe1.ja.pod

    r12657 r12972  
    4848 
    4949すべてのPerl5のクラスのように、Mooseのクラスはpackageを宣言します。 
    50 MooseはC<use Moose>することによりstrictとwarningsを有効にします。 
     50MooseはC<use Moose>するだけでstrictとwarningsを有効にします。 
    5151そして小さな失敗をせずにすむでしょう。 
    5252 
     
    5757 
    5858Mooseをロードすることにより、package内でMooseの"environment"を 
    59 ロード可能にします。この意味はいくつかのMoose "Keywords"である 
    60 functionをインポートするということです。 
     59ロード可能にします。これはいくつかのMoose "keywords"である 
     60関数をimportするということです。これらは変わったことではなく 
     61以前からあるexportされた関数です。 
    6162 
    6263Another important thing happens at this stage as well. Moose will  
     
    7172その他に重要なことがこのステージではおきます。Mooseは自動的にあなたの 
    7273packageのスーパークラスをL<Moose::Object>にします。 
    73 これをする理由はあなたのクラスがL<Moose::Object>を継承し、役に立つものを 
    74 提供します(コンストラクタなど; 詳しくはL<Moose::Object>を参照)。 
     74これをする理由はあなたのクラスがL<Moose::Object>を継承し、与えられる利点 
     75を得られるようにします(コンストラクタなど; 詳しくはL<Moose::Object>を参照)。 
    7576しかしながら、あなたがL<Moose::Object>を継承することを望まなければ 
    7677継承する必要はありません。それでもすべてのMooseの特徴にアクセスできます。 
     
    7980defines an instance attribute in your class: 
    8081 
    81 さて、keywardsについてです。最初に見つかるC<has>はinstance attributeを 
    82 クラスに定義します。 
     82さて、keywardsについてです。最初に見つかるC<has>は 
     83インスタンスアトリビュートをクラスに定義します。 
    8384 
    8485  has 'x' => (isa => 'Int', is => 'ro'); 
     
    8990(abbreviated as C<ro>). 
    9091 
    91 これはC<x>というattributeを作成し、attributeに格納されるであろう 
    92 C<Int>(1)type 制約を渡し、読み取り専用のaccessorを生成します。 
    93 (C<ro>と省略される) 
     92これはC<x>というアトリビュートを作成し、アトリビュートに 
     93格納されるである値のC<Int>(1)type 制約を渡し、読み取り専用の 
     94アクセサを生成します(C<ro>と省略される)。 
    9495 
    9596The next C<has> line is very similar, with only one difference: 
     
    102103the C<y> attribute. 
    103104 
    104 read/write (短縮すると C<rw>) accessorを C<y> attributeに生成します。 
     105read/write (短縮すると C<rw>) アクセサを C<y> アトリビュートに生成します。 
    105106 
    106107At this point the attributes have been defined, and it is time to  
     
    109110the C<clear> method. 
    110111 
    111 のpointのattributeを定義し、methodを定義します。 
    112 Mooseでは、通常のPerl5 OOのようにmethodをサブルーチンとして 
     112こまででpointのアトリビュートが定義されました、そしてここでメソッドを 
     113定義します。Mooseでは、通常のPerl5 OOのようにメソッドをサブルーチンとして 
    113114packageに定義します。では C<clear> メソッドを作ります。 
    114115 
     
    126127other Perl 5 (non-Moose) classes as well.  
    127128 
    128 これはとても普通ですが、ひとつだけ付け加えるとインスタンスL<(2)>の 
    129 C<x> slotに直接アクセスしています。これは読み取り専用の値が 
     129これはとても標準的なことですが、ひとつだけ付け加えるとインスタンスL<(2)>の 
     130C<x> スロットに直接アクセスしています。これは読み取り専用の値が 
    130131作成されています。このようにMooseオブジェクトは通常の以前からある 
    131 blessされたHASHリファレンスであり、通常から逸脱する 
     132blessされたHASHリファレンスであり、標準から逸脱する 
    132133ものではありません。そしてこれは他のPerl5(Mooseではない)クラスとの 
    133134互換性がよく保たれるということです。 
     
    173174a new attribute for B<Point3D> called C<z>. 
    174175 
    175 B<Point3D>クラスに戻ります。次は新しい属性であるC<z>をB<Point3D>に 
    176 作ります。 
     176B<Point3D>クラスに戻ります。次は新しいアトリビュートであるC<z>を 
     177B<Point3D>に作ります。 
    177178 
    178179  has 'z' => (isa => 'Int'); 
     
    183184broken object encapsulation) that C<z> is a private attribute. 
    184185 
    185 B<Point>のC<x>やC<y>属性のように、この属性はC<Int>型制約を持ちますが 
    186 accessorはなんら自動的に作成されません。この結果C<z>属性は 
    187 privateな属性になります(ちなみにカプセル化は破壊されます)。 
     186B<Point>のC<x>やC<y>アトリビュートのように、このアトリビュートは 
     187C<Int>型制約を持ちますがアクセサはなんら自動的に作成されません。 
     188この結果C<z>アトリビュートはprivateな属性になります 
     189(ちなみにカプセル化は破壊されます)。 
    188190 
    189191Next comes another Moose feature which we call method "modifiers"  
     
    192194 
    193195次のMooseの特徴は"modifiers"と呼ばれるメソッドです。 
    194 (またAOPでは"advice" method) 
     196(またAOPでは"advice" メソッド) 
    195197ここではC<after>modifierを使っています。このように: 
    196198 
     
    207209 
    208210このmodifierはB<Point3D>にC<clear>メソッドをインストールします。 
    209 最初にスーパークラスのC<clear>methodを実行します(ここではC<Point::clear>)。 
    210 そしてこのmethodが実行されます(もとのメソッドと同じ引数が渡されます)。 
     211最初にスーパークラスのC<clear>メソッドを実行します 
     212(ここではC<Point::clear>)。 
     213そしてこのメソッドが実行されます(もとのメソッドと同じ引数が渡されます)。 
    211214 
    212215 
     
    227230and get the same results again. Here is how that would look: 
    228231 
    229 他にもMoose method modifierが使えます。C<override>も同じように結果が 
    230 得られます。どのようにかを示します: 
     232他にもMoose method modifierが使えます。C<override>も同じように結果が 
     233得られます。どのようにやるかを示します: 
    231234 
    232235  override 'clear' => sub { 
     
    293296and the type constraint system in general, see the  
    294297L<Moose::Util::TypeConstraints> documentation. 
     298 
     299Mooseはいくつかのデフォルトのtype制約を提供します。 
     300C<Int>はそのうちの一つです。組み込みのtype制約と一般的な 
     301type制約システムについてはL<Moose::Util::TypeConstraints> 
     302ドキュメントを参照してください。 
    295303 
    296304=item (2) 
     
    305313L<Moose::Meta::Attribute documentation>). 
    306314 
     315Mooseはインスタンスの構造をblessされたhash reference以外でも 
     316サポートしています(例えばglob reference --L<MooseX::GlobRef::Object>を 
     317参照)。 
     318もしMooseクラスを交換可能にしたければ、上記のように直接インスタンスに 
     319アクセスするのは避けたほうが懸命です。Mooseはインスタンスの構造を直接 
     320公開することなく、アトリビュートを設定したり、取得したりできます。 
     321しかし、これは高度なトピックです(勇敢な読者はL<MooseX::GlobRef::Object>を 
     322参照してください)。 
     323 
     324 
    307325=back 
    308326 
     
    316334great explanation of them can be found by following this link. 
    317335 
     336method modifierの概念はCLOSから持ってきました。 
     337次のリンクから、すばらしい説明が読めます。 
     338 
    318339L<http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html> 
    319340