Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

書籍 リファクタリング−プログラマーの体質改善 | メソッド呼び出しの単純化 | メソッドの隠蔽

内容

適用ケース要約

メソッドが自分の定義されているクラス意外からまったく使用されていない

適用内容要約

そのメソッドを非公開にする

適用詳細

必要最低限なメソッドのみを公開することにより利用者側がどの機能を利用すれば良いのか
分かりやすくなります。

サンプル

既存プロジェクトで利用されているpublicメソッドhide_methodが外部から利用されていないことがわかりました。
リファクタリングを行いprivateにすることで、外部から利用されないように変更を行います。

サンプルコード

リファクタリング

# encoding: Shift_JIS

class Sample
  def open_method()
    puts "open"
    hide_method()
  end
  
  def hide_method()
    puts "hide"
  end
end

sample=Sample.new
sample.open_method
sample.hide_method

出力(リファクタリング前)

open
hide
hide

リファクタリング

# encoding: Shift_JIS

class Sample
  def open_method()
    puts "open"
    hide_method()
  end
  
  private
  def hide_method()
    puts "hide"
  end
end

sample=Sample.new
sample.open_method
sample.hide_method

出力(リファクタリング後)

open
hide
・・・・ (NoMethodError)