1. 程式人生 > 實用技巧 >設計模式(七) 策略模式

設計模式(七) 策略模式

策略模式是一種定義一系列演算法的方法,以相同的方式呼叫不同的演算法,減少了各種演算法類與使用演算法類之間的耦合。 它的重心不是如何實現演算法,而是如何組織,呼叫這些演算法。從而讓程式結構更靈活,具有更好的維護性和擴充套件性。 程式碼實現:
//演算法策略介面
public interface IStrategy
{
     int GetPayment(int charge);
}
//策略A
public class CashNormarl : IStrategy
{
   public  int GetPayment(int charge)
   {
               return charge;
   }
}
//策略B
public class CashReturn : IStrategy
{
   public  int GetPayment(int charge)
   {
              if(charge >= 300
) { return charge-100; } } } //組織策略上下文 public class CashContext { IStrategy _strategy ; public CashContext(IStrategy strategy) { _strategy = strategy; } public int GetPayment(int charge) { return _strategy.GetPayment(); } }
//客戶端呼叫 int charge = 1000; var cash = CashContext(new CashReturn()); var payment = cash.GetPayment(charge );
View Code

還可以通過簡單工廠模式來優化 組織策略上下文類 ,讓客戶端與演算法實現類完全解耦