Historyクラスにredoメソッドを実装し、Undoした操作をやり直せるようにします。undo_stackとredo_stack間のコマンド移動を理解し、Undo/Redoの連続操作をマスターします。
操作履歴を管理するHistoryクラスを作成します。undo_stackとredo_stackでスタック管理を行い、execute_commandとundoメソッドを実装。履歴管理のカプセル化を学びます。
InsertCommandとDeleteCommandに共通のインターフェースを保証するため、Moo::Roleでrequiresを使ったCommand::Roleを作成します。コンパイル時に不足メソッドを検出できる安全な設計を学びます。
各操作に「逆操作」を定義してUndo機能を実現します。InsertCommandにundoメソッドを追加し、挿入の逆である削除を実装。DeleteCommandクラスも作成します。
「何をしたか」を記録するために、操作そのものをオブジェクトにするアイデア。InsertCommandクラスを作成し、操作のオブジェクト化を学びます。
誤って削除した文字を戻したい!直前の状態を保存する試みと、複数回の操作で破綻するケースを通じて、操作履歴の必要性を理解します。
PerlとMooでテキストを追加・削除できる簡易エディタを作成。Undo/Redo機能まで学ぶシリーズ第1回。
Perl/Mooで設定ファイルマネージャーを作りながら、Singletonパターンを自然に学べるシリーズです。全5回の記事一覧と概要をまとめています。
これまで実装してきた仕組みがGoFデザインパターンの「Singletonパターン」であることを解説。パターンの利点と注意点も紹介します。
Perl/Mooでinstance()メソッドを実装し、インスタンスを1つに統一する方法を解説。クラス変数による単一インスタンス保証の仕組みを学びます。
複数のモジュールから設定を参照する際に発生する問題を体験。なぜ設定が反映されないのか、その原因を探ります。
Perl/Mooで外部の設定ファイル(INI形式)を読み込む方法を解説。load_configメソッドの実装と、設定値の取得方法を学びます。
Perl/Mooで設定を管理するクラスを作成します。ハードコードされた設定値をクラスで管理する方法を、初心者向けにステップバイステップで解説します。
Perlで本棚アプリを作りながらIteratorパターンを学ぶシリーズの目次ページ。全5回の記事へのリンクをまとめています。
完成した本棚アプリを振り返り、作ったものがIteratorパターンであることを解説。GoFのデザインパターンと逆順巡回の実装例も紹介します。