パンくず
内容
適用ケース要約
アルゴリズムをよりわかりやすいものに置き換えたい
サンプル
ある3人の生徒のテストの点数を表示する機能を実装します。
リファクタリング前はハッシュの存在を知らない状態で実装し、
その後ハッシュでの実装を知り、処理を変更したと想定します。
サンプルコード
▼リファクタリング前
# encoding: Shift_JIS def change_algorithm_before() name_list=["tanaka","sato","suzuki"] score_list=[80,78,20] (0..name_list.size-1).each {|count| print "#{name_list[count]}:#{score_list[count]}点\n" } end change_algorithm_before
▼リファクタリング後
# encoding: Shift_JIS def change_algorithm_after() score_hash={"tanaka"=>80,"sato"=>78,"suzuki"=>20} score_hash.each {|key,value| print "#{key}:#{value}点\n" } end change_algorithm_after
▼出力結果(共通)
tanaka:80点 sato:78点 suzuki:20点
解説
▼name_list、score_list
生徒と点数をリストで管理していたが、こころハッシュに変更することで
一つの変数で管理でき、ループからループカウンタを排除することが出来、
可読性が高くなりました。