実は作ってきたものが「Flyweightパターン」でした!GoFデザインパターンの構造パターンを学び、Prototypeパターンとの違いも解説します。
BattleFieldクラスで弾の位置を管理し、毎フレーム更新・描画。完成した弾幕シューティングエンジンの全体像をお見せします。
renderメソッドに位置を引数で渡して描画。共有オブジェクトと外部状態を組み合わせて、弾幕を効率的に描画する方法を学びます。
同じ種類の弾は1つのオブジェクトを共有しよう!BulletFactoryでオブジェクトプールを管理し、「1000発の弾を5オブジェクトで」を実現します。
弾の「種類」(形状・色)と「位置」(X, Y座標)を分けて考える。この発想がメモリ効率化の鍵。内部状態と外部状態の分離を学びます。
弾幕シューティングで弾を1000発撃ちたい!でも素朴にBulletオブジェクトを1000個作ると、メモリ使用量が爆発。この問題をどう解決するか、一緒に考えてみましょう。
Compositeパターンを学びながらMarkdown目次ジェネレーターを作るシリーズの目次ページ。ツリー構造の構築、再帰的レンダリング、複数フォーマット出力を実践的に習得。
PerlとMooでCompositeパターン完全マスター!アンカーID自動生成でリンク付き目次を実現し、開放閉鎖原則(OCP)を実践。実務で使えるMarkdown処理ツールを完成させます。
PerlとMooでMarkdown目次生成器を作る第7回。同じツリー構造からMarkdown、HTML、JSON形式で出力。Compositeパターンの統一インターフェースの威力を体感します。
PerlとMooでMarkdown目次生成器を作る第6回。スタックベースのアルゴリズムで見出し配列からツリー構造を自動構築。Compositeパターンの実践的な活用方法を学びます。
PerlとMooでCompositeパターンを実装!if/else階層判定の限界を克服し、見出しツリー構造を作る方法を学びます。Heading Role、SectionHeadingで部分-全体階層を統一的に扱う体験。
PerlとMooでMarkdown目次生成器を作る第4回。親子関係を表現しようとif/else地獄に。条件分岐爆発の問題を体験し、デザインパターン導入の必要性を理解します。
PerlとMooでMarkdown目次生成器を作る第3回。抽出した見出しをインデント付きで表示。まだ階層構造は扱わず、単純な配列処理で目次をレンダリングします。
PerlとMooでMarkdown目次生成器を作る第2回。正規表現で見出しを抽出し、レベルとテキストをハッシュ配列で保存。Compositeパターン学習の基礎を固めます。
PerlとMooでMarkdown処理の基礎を学ぶ連載第1回。ファイル読み込みクラスMarkdownReaderを実装し、Compositeパターン学習の土台を作ります。Perl入学式卒業者向け実践シリーズ。