パンくず
内容
適用ケース要約
同じような機能を持つ2つのクラスがある。
サンプル
Webページクラス、照会系ページクラスと登録系ページクラスが別々にあるとします。
Webページクラスは、「ページを表示する」メソッドを持ちます。
照会系ページは「ページを表示する」メソッドと「検索をする」メソッドを持ちます
登録系ページは「ページを表示する」メソッドと「データを登録する」メソッドを持ちます
サンプルコード
# encoding: Shift_JIS class WebPage PAGE_TITLE="WebPage" def output_page() puts "#{PAGE_TITLE}を表示します" end end class ReferencePage PAGE_TITLE="照会" def output_page() puts "#{PAGE_TITLE}照会ページを表示します" end def search() puts "検索します" end end class RegisterPage PAGE_TITLE="登録" def output_page() puts "#{PAGE_TITLE}登録ページを表示します" end def register() puts "登録画面します" end end web_page = WebPage.new web_page.output_page ref_page = ReferencePage.new ref_page.output_page ref_page.search reg_page = RegisterPage.new reg_page.output_page reg_page.register
# encoding: Shift_JIS class WebPage PAGE_TITLE="WebPage" def output_page() puts "#{get_page_title}を表示します" end def get_page_title() return PAGE_TITLE end end class ReferencePage < WebPage PAGE_TITLE="照会" def search() puts "検索します" end def get_page_title() return PAGE_TITLE end end class RegisterPage < WebPage PAGE_TITLE="登録" def register() puts "登録画面します" end def get_page_title() return PAGE_TITLE end end web_page = WebPage.new web_page.output_page ref_page = ReferencePage.new ref_page.output_page ref_page.search reg_page = RegisterPage.new reg_page.output_page reg_page.register
出力(リファクタリング後)
WebPageを表示します 照会照会ページを表示します 検索します 登録登録ページを表示します 登録画面します