Java 下各種設計模式小結
來源:程序員人生 發布時間:2014-10-11 08:00:00 閱讀次數:3059次
策略模式――定義算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化獨立于使用算法的客戶。
策略模式是說,針對一種計算,定義一系列的算法,由用戶決定具體使用哪一個算法完成計算。
比如,提供一個計算銀行存款利率的接口,對于不同的存款方式(活期、一年定期、兩年定期),提供不同的算法實現類,由用戶決定使用哪種存款方式來計算利率。如果銀行計算利率的算法發生了變化(如又增加了三年定期、五年定期的算法),對于用戶的使用不產生任何影響,因為用戶使用的是統一的計算接口,也符合了針對接口編程,不針對實現編程的設計原則。
定義一個計算存款利率的接口:
-
public interface IRateCalculator {
-
public double calculate(double amount);
-
}
計算活期存款利率的實現類:
-
public class CurrentRateCalcalator implements IRateCalculator {
-
-
private double rate = 0.035;
-
-
-
-
-
@Override
-
public double calculate(double amount) {
-
return amount * rate;
-
}
-
}
計算一年定期存款利率的實現類:
-
public class OneYearRateCalculator implements IRateCalculator {
-
-
private double rate = 0.0325;
-
-
-
-
-
@Override
-
public double calculate(double amount) {
-
return amount * rate;
-
}
-
}
計算兩年定期存款利率的實現類:
-
public class TwoYearRateCalculator implements IRateCalculator {
-
-
private double rate = 0.0375;
-
-
-
-
-
@Override
-
public double calculate(double amount) {
-
return amount * rate;
-
}
-
}
測試類:
-
public class Test {
-
-
-
-
-
-
-
public static void main(String[] args) {
-
-
double amount = 100;
-
double rate;
-
IRateCalculator rateCalculator;
-
-
-
rateCalculator = new CurrentRateCalcalator();
-
rate = rateCalculator.calculate(amount);
-
System.out.println("活期存款利率為:" + rate);
-
-
-
rateCalculator = new OneYearRateCalculator();
-
rate = rateCalculator.calculate(amount);
-
System.out.println("一年定期存款利率為:" + rate);
-
-
-
rateCalculator = new TwoYearRateCalculator();
-
rate = rateCalculator.calculate(amount);
-
System.out.println("兩年定期存款利率為:" + rate);
-
}
-
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈