Template Method Site Residential Site Lifeline Site get Slides: 17 Download presentation Template Method パターンの適用 Site Residential. Site Lifeline. Site get. Billable. Amount() … double base = _units*_rate; double tax = base*Site. TAX_RATE; return base + tax; … double base = _units*_rate*0. 5; double tax = base*Site. TAX_RATE*0. 2; return base + tax; 3 Template Method パターンの適用 手順1 類似メソッド間の 差分を求める Site Residential. Site Lifeline. Site 記述の異なるコード get. Billable. Amount() 片を見つける … double base = _units*_rate; double tax = base*Site. TAX_RATE; return base + tax; … double base = _units*_rate*0. 5; double tax = base*Site. TAX_RATE*0. 2; return base + tax; 4 Template Method パターンの適用 手順2 類似メソッド間の 差異を取り除く Site Residential. Site Lifeline. Site 抽出が容易なコード片 get. Billable. Amount() であることを確認する … double base = _units*_rate; double tax = base*Site. TAX_RATE; return base + tax; … double base = _units*_rate*0. 5; double tax = base*Site. TAX_RATE*0. 2; return base + tax; 5 Template Method パターンの適用 手順2 類似メソッド間の 差異を取り除く Site Residential. Site Lifeline. Site get. Billable. Amount() get. Bace. Amount() get. Tax. Amount() メソッドとして抽出 … … double base = get. Bace. Amount(); double tax = get. Tax. Amount(); return base + tax; 6 Template Method パターンの適用 Site 手順3 類似メソッドを 引き上げる get. Billable. Amount() get. Bace. Amount() … double base = get. Bace. Amount(); get. Tax. Amount() 差異を取り除いた 親クラスに抽象 類似メソッドを親ク メソッドを定義 Residential. Site ラスへ引き上げる get. Bace. Amount() get. Tax. Amount() double tax = get. Tax. Amount(); return base + tax; Lifeline. Site get. Bace. Amount() get. Tax. Amount() 親クラスに 抽象メソッドと して定義する 7