策略模式

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();
}
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章