Featured image of post 【目次】PerlとMooでモンスター軍団を量産してみよう(全6回)

【目次】PerlとMooでモンスター軍団を量産してみよう(全6回)

PerlとMooで「既存オブジェクトをコピーして新しいオブジェクトを作る」Prototypeパターンを学ぶ全6回シリーズ。MooX::CloneからStorable::dclone()まで実践的に解説。

@nqounetです。

このページは「PerlとMooでモンスター軍団を量産してみよう」シリーズの目次です。

シリーズ概要

このシリーズでは、既存オブジェクトをコピーして新しいオブジェクトを効率的に生成する方法を学びます。 GoFデザインパターンの一つ「Prototypeパターン」をPerlとMooで実践的に習得できる内容です。

学習ゴール

  • 既存オブジェクトをコピーして新しいオブジェクトを効率的に生成する方法を習得
  • 「浅いコピー」と「深いコピー」の違いを実体験で理解
  • MooX::CloneやStorable::dclone()を使いこなせるようになる
  • Prototypeパターンを自然に身につける

対象読者

  • Perl入学式を卒業したばかりの方
  • Mooの基本(hasnewextends)を理解している方
  • 「Mooで覚えるオブジェクト指向プログラミング」シリーズを読了した方

前提知識

このシリーズは「Mooで覚えるオブジェクト指向プログラミング」シリーズの続編です。まだ読んでいない方は、先にそちらをご覧ください。

全6回の目次

第1回 - モンスターを量産したい!new()の限界

スライムを大量に作りたいが、new()で毎回全属性を指定するのは面倒。10体のスライムを作るコードが30行に膨れ上がる問題を体験します。


第2回 - MooX::Cloneでモンスターを量産しよう

MooX::Cloneを導入してclone()メソッドを追加。ベースモンスターを1体作り、clone()で量産。コードが劇的に短くなります。


第3回 - clone()で色違いモンスターを量産しよう

赤スライム、青スライム、金スライムをclone()で生成し、色だけ変更。テンプレートからのバリエーション量産の楽しさを体験します。


第4回 - 浅いコピーの罠!装備を持ったモンスターで問題発生

武器オブジェクトを持つドラゴンをクローン。武器を変更したら、元のドラゴンの武器も変わってしまう!「浅いコピー」の問題を発見します。


第5回 - Storable::dclone()で深いコピー!

Storable::dclone()を使って「深いコピー」を実装。ネストしたオブジェクトも完全に独立したコピーになり、浅いコピーの問題を解決します。


第6回 - これがPrototypeパターンだ!

作ってきたものが「Prototypeパターン」だったことを明かします。GoFデザインパターンの生成パターンを学び、Factory Methodとの違いも解説します。

シリーズの流れ

	graph LR
    A["第1回<br>new()の限界"] --> B["第2回<br>clone()導入"]
    B --> C["第3回<br>バリエーション作成"]
    C --> D["第4回<br>浅いコピーの罠"]
    D --> E["第5回<br>深いコピーで解決"]
    E --> F["第6回<br>Prototypeパターン"]
    
    style A fill:#fff3cd
    style B fill:#d1e7dd
    style C fill:#d1e7dd
    style D fill:#f8d7da
    style E fill:#d1e7dd
    style F fill:#cfe2ff

参考資料

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。