- Timestamp:
- 06/01/08 15:11:50 (5 years ago)
- Files:
-
- 1 modified
-
docs/moose-ja/Moose/Cookbook/Recipe1.ja.pod (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
docs/moose-ja/Moose/Cookbook/Recipe1.ja.pod
r12657 r12972 48 48 49 49 すべてのPerl5のクラスのように、Mooseのクラスはpackageを宣言します。 50 MooseはC<use Moose>する ことによりstrictとwarningsを有効にします。50 MooseはC<use Moose>するだけでstrictとwarningsを有効にします。 51 51 そして小さな失敗をせずにすむでしょう。 52 52 … … 57 57 58 58 Mooseをロードすることにより、package内でMooseの"environment"を 59 ロード可能にします。この意味はいくつかのMoose "Keywords"である 60 functionをインポートするということです。 59 ロード可能にします。これはいくつかのMoose "keywords"である 60 関数をimportするということです。これらは変わったことではなく 61 以前からあるexportされた関数です。 61 62 62 63 Another important thing happens at this stage as well. Moose will … … 71 72 その他に重要なことがこのステージではおきます。Mooseは自動的にあなたの 72 73 packageのスーパークラスをL<Moose::Object>にします。 73 これをする理由はあなたのクラスがL<Moose::Object>を継承し、 役に立つものを74 提供します(コンストラクタなど; 詳しくはL<Moose::Object>を参照)。74 これをする理由はあなたのクラスがL<Moose::Object>を継承し、与えられる利点 75 を得られるようにします(コンストラクタなど; 詳しくはL<Moose::Object>を参照)。 75 76 しかしながら、あなたがL<Moose::Object>を継承することを望まなければ 76 77 継承する必要はありません。それでもすべてのMooseの特徴にアクセスできます。 … … 79 80 defines an instance attribute in your class: 80 81 81 さて、keywardsについてです。最初に見つかるC<has>は instance attributeを82 クラスに定義します。82 さて、keywardsについてです。最初に見つかるC<has>は 83 インスタンスアトリビュートをクラスに定義します。 83 84 84 85 has 'x' => (isa => 'Int', is => 'ro'); … … 89 90 (abbreviated as C<ro>). 90 91 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>と省略される)。 94 95 95 96 The next C<has> line is very similar, with only one difference: … … 102 103 the C<y> attribute. 103 104 104 read/write (短縮すると C<rw>) accessorを C<y> attributeに生成します。105 read/write (短縮すると C<rw>) アクセサを C<y> アトリビュートに生成します。 105 106 106 107 At this point the attributes have been defined, and it is time to … … 109 110 the C<clear> method. 110 111 111 こ のpointのattributeを定義し、methodを定義します。112 Mooseでは、通常のPerl5 OOのようにmethodをサブルーチンとして112 ここまででpointのアトリビュートが定義されました、そしてここでメソッドを 113 定義します。Mooseでは、通常のPerl5 OOのようにメソッドをサブルーチンとして 113 114 packageに定義します。では C<clear> メソッドを作ります。 114 115 … … 126 127 other Perl 5 (non-Moose) classes as well. 127 128 128 これはとても 普通ですが、ひとつだけ付け加えるとインスタンスL<(2)>の129 C<x> slotに直接アクセスしています。これは読み取り専用の値が129 これはとても標準的なことですが、ひとつだけ付け加えるとインスタンスL<(2)>の 130 C<x> スロットに直接アクセスしています。これは読み取り専用の値が 130 131 作成されています。このようにMooseオブジェクトは通常の以前からある 131 blessされたHASHリファレンスであり、 通常から逸脱する132 blessされたHASHリファレンスであり、標準から逸脱する 132 133 ものではありません。そしてこれは他のPerl5(Mooseではない)クラスとの 133 134 互換性がよく保たれるということです。 … … 173 174 a new attribute for B<Point3D> called C<z>. 174 175 175 B<Point3D>クラスに戻ります。次は新しい 属性であるC<z>をB<Point3D>に176 作ります。176 B<Point3D>クラスに戻ります。次は新しいアトリビュートであるC<z>を 177 B<Point3D>に作ります。 177 178 178 179 has 'z' => (isa => 'Int'); … … 183 184 broken object encapsulation) that C<z> is a private attribute. 184 185 185 B<Point>のC<x>やC<y>属性のように、この属性はC<Int>型制約を持ちますが 186 accessorはなんら自動的に作成されません。この結果C<z>属性は 187 privateな属性になります(ちなみにカプセル化は破壊されます)。 186 B<Point>のC<x>やC<y>アトリビュートのように、このアトリビュートは 187 C<Int>型制約を持ちますがアクセサはなんら自動的に作成されません。 188 この結果C<z>アトリビュートはprivateな属性になります 189 (ちなみにカプセル化は破壊されます)。 188 190 189 191 Next comes another Moose feature which we call method "modifiers" … … 192 194 193 195 次のMooseの特徴は"modifiers"と呼ばれるメソッドです。 194 (またAOPでは"advice" method)196 (またAOPでは"advice" メソッド) 195 197 ここではC<after>modifierを使っています。このように: 196 198 … … 207 209 208 210 このmodifierはB<Point3D>にC<clear>メソッドをインストールします。 209 最初にスーパークラスのC<clear>methodを実行します(ここではC<Point::clear>)。 210 そしてこのmethodが実行されます(もとのメソッドと同じ引数が渡されます)。 211 最初にスーパークラスのC<clear>メソッドを実行します 212 (ここではC<Point::clear>)。 213 そしてこのメソッドが実行されます(もとのメソッドと同じ引数が渡されます)。 211 214 212 215 … … 227 230 and get the same results again. Here is how that would look: 228 231 229 他にもMoose method modifierが使えます。C<override>も同じように結果が230 得られます。どのように かを示します:232 他にもMooseの method modifierが使えます。C<override>も同じように結果が 233 得られます。どのようにやるかを示します: 231 234 232 235 override 'clear' => sub { … … 293 296 and the type constraint system in general, see the 294 297 L<Moose::Util::TypeConstraints> documentation. 298 299 Mooseはいくつかのデフォルトのtype制約を提供します。 300 C<Int>はそのうちの一つです。組み込みのtype制約と一般的な 301 type制約システムについてはL<Moose::Util::TypeConstraints> 302 ドキュメントを参照してください。 295 303 296 304 =item (2) … … 305 313 L<Moose::Meta::Attribute documentation>). 306 314 315 Mooseはインスタンスの構造をblessされたhash reference以外でも 316 サポートしています(例えばglob reference --L<MooseX::GlobRef::Object>を 317 参照)。 318 もしMooseクラスを交換可能にしたければ、上記のように直接インスタンスに 319 アクセスするのは避けたほうが懸命です。Mooseはインスタンスの構造を直接 320 公開することなく、アトリビュートを設定したり、取得したりできます。 321 しかし、これは高度なトピックです(勇敢な読者はL<MooseX::GlobRef::Object>を 322 参照してください)。 323 324 307 325 =back 308 326 … … 316 334 great explanation of them can be found by following this link. 317 335 336 method modifierの概念はCLOSから持ってきました。 337 次のリンクから、すばらしい説明が読めます。 338 318 339 L<http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html> 319 340
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)