2014-05-19から1日間の記事一覧
概要 追加要件 Integer#each_digit 追加 詳細 追加要件 Integer#each_digit 仕様 ・整数の各桁をイテレーションします。 ※より詳細についてはGitHubのREADMEおよびテストケース参照 GitHub https://github.com/tbpgr/tbpgr_utils Rubygems http://rubygems.o…
概要 Decorator Pattern 〜 CodeIQの解答コメントをデコレーションする 詳細 Decorator Patternは、既存のオブジェクトに対して新たな機能をレイヤ状に追加していけるようにするパターンです。 これにより、一つのクラスやメソッドに責務の異なる様々な機能…
概要 Proxy Pattern 〜 CodeIQの簡単な問題は後輩Proxyに解かせる 詳細 Proxy Patternは、生成コストが大きかったり・何らかの前処理や後処理をする領域がほしかったりする場合に 本物のオブジェクトのふりをするオブジェクトを作成するパターンです。これに…
概要 Adapter Pattern 詳細 Adapter Patternは、既存のインターフェースと新たなインターフェースの橋渡しを行います。 サンプル仕様 あるサービスを提供するシステムがあります。 複数の利用者がサービスを呼び出します。1次開発ではサービスはargs引数のみ…
概要 Command Pattern 詳細 Command Patternは、命令を実行するためのパターンです。 命令をCommandとしてクラスにしておくことで、実行方法と命令を分離することができます。 これにより ・命令の履歴を保存する ・Undo機能を持つ ・命令をためてから任意の…
概要 Iterator Pattern 詳細 Iterator Patternは、内部オブジェクトの保持形式に依存せずに外部に連続して走査するための インターフェースを提供するパターンです。 サンプル1仕様 Stringクラスの各単語へのIteratorを実装する。 ここでは、半角スペースで…
概要 Kernel#local_variables -> [Symbol] 詳細 現在のスコープにあるローカル変数名の一覧を配列にして返します。 サンプルコード require 'pp' require 'test_toolbox' def hoge(args_a, args_b) c = 'hoge c' d = 'hoge d' pp local_variables end a = 'a…