定義:
也叫政策模式
定義一組演算法,將每個演算法都封裝起來,並且使它們可以相互轉換
角色:環境角色:上下文角色,相當於呼叫者
抽象策略角色:對決策略,演算法進行抽象,定義每個決策或演算法必須有的方法和屬性
具體策略:抽象的具體實現
優點:策略模式提供了管理相關的演算法族的辦法。
提供了可以替換繼承關係的辦法
避免出現多重條件轉換語句
缺點:客戶端必須知道所有的策略類,並決定使用哪乙個
造成很多的策略類
場景:多個類只是在演算法或者行為上稍有不同的場景
演算法需要自由切換的場景
需要遮蔽演算法規則的場景
例項:商品打折結算
package 策略模式;
public abstract class discountstartegy
public int getnumber()
public discountstartegy(double price,int number)
public abstract double calculate();
}
package 策略模式;
public class wudiscount extends discountstartegy
@override
public double calculate()
}
package 策略模式;
public class eightdiscount extends discountstartegy
@override
public double calculate()
}
package 策略模式;
public class ninediscount extends discountstartegy
@override
public double calculate()
}
package 策略模式;
public class main
}
無折扣:240.0八折:199.36
九折:216.0
行為型模式 策略模式
策略 class salestrategy class strategya public salestrategy class strategyb public salestrategy 策略使用者 class salesman void yell salestrategy m strategy 呼...
行為型模式 策略模式
liebrother原文 行為型模式 策略模式 十一大行為型模式之五 策略模式。姓名 策略模式 英文名 strategy pattern 價值觀 集計謀於一身 個人介紹 define a family of algorithms,encapsulate each one,and make them ...
行為型模式 策略模式
liebrother原文 行為型模式 策略模式 十一大行為型模式之五 策略模式。姓名 策略模式 英文名 strategy pattern 價值觀 集計謀於一身 個人介紹 define a family of algorithms,encapsulate each one,and make them ...