1,什麼是策略模式?
策略模式,又叫算法簇模式,就是定義了不同的算法族,並且之間可以互相替換,此模式讓算法的變化獨立於使用算法的客戶。
2,策略模式有什麼好處?
策略模式的好處在於你可以動態的改變對象的行爲。
3 ,策略模式中有三個對象:
(1) 環境對象:該類中實現了對抽象策略中定義的接口或者抽象類的引用。
(2) 抽象策略對象:它可由接口或抽象類來實現。
(3) 具體策略對象:它封裝了實現同不功能的不同算法。
利用策略模式構建應用程序,可以根據用戶配置等內容,選擇不同有算法來實現應用程序的功能。具體的選擇有環境對象來完成。採用這種方式可以避免由於使用條件語句而帶來的代碼混亂,提高應用程序的靈活性與條理性。
5,應用場景舉例:
商場商品打折有九折,有7折
/**
* 策略接口
* @author coco
*
*/
public interface Strategy {
void saleoff();
}
/**
* 具體的策略
* @author coco
*
*/
public class JiuSale implements Strategy {
@Override
public void saleoff() {
System.out.println("我打九折");
}
}
/**
* 環境對象
* @author coco
*
*/
public class Context {
Strategy strartegy;
public Context(Strategy strartegy) {
this.strartegy = strartegy;
}
public void saleoff() {
strartegy.saleoff();
}
}
/**
* 調用者
* @author coco
*
*/
public class Test {
public static void main(String[] args) {
//Context con=new Context(new JiuSale());
Context con=new Context(new BaSale());
con.saleoff();
}
}