java設計模式之策略模式

2021-08-20 11:40:26 字數 1564 閱讀 8707

①uml設計:

②定義以及使用場景:定義一系列演算法,將每個演算法單獨封裝,使之可以相互替換,具體方法策略的選擇由客戶端決定,一般適用於多選一的場景。

③示例:定義乙個介面message,定義兩個類qq、wx 都實現了message介面,定義乙個類messagecontroller,訊息控制中心,決定執行message介面下的哪個具體實現類。

public inte***ce message
public class qq implements message

}

public class wx implements message

}

public class messagecontroller

public void sendmessage(string message,from)

}

public class test

}

執行結果:

qq message hello from ryan!

wx message hi from kiven!

*擴充套件 

需求:獲取當前公司中員工年齡大於30歲的員工資訊,(替換篩選條件,薪水大於5k員工資訊?) 

思路:定義一系列的篩選條件演算法,並將每個演算法進行封裝,使之可以相互替換,具體篩選方法的選擇交給客戶端決定

示例:

public class employee

public employee(strin name,int age,int salary)

public string getname()

public void setname(string name)

public int getsalary()

public void setsalary(int salary)

public int getage()

public void setage(int age)

@override

public string tostring() ';}}

public inte***ce mypredicate
public class judgebysalary implements mypredicate

}

public class judgebyage implements mypredicate

}

public class test

private listfilteremployees(listemps,mypredicatemp)

});return nemps;

}}

java 設計模式之策略模式

策略模式非常簡單,也不再舉例子了,它其實就是根據clinet選擇的不同,執行不同的 避免了if.else 和switch case 的不方便和耦合。甚至說你可能平常經常用,只是不知道這是策略模式。類圖 對於擁有公共介面的first,second,third,給clinet提供乙個類context 去...

java設計模式之策略模式

很久沒有更新過設計模式的學習了,最近在看的幾種設計模式在專案實際開發過程中不常用,所以並沒有彙總成部落格寫出來 這一次介紹的是策略模式。策略模式和工廠模式的思想有點類似,都是把物件或資料的獲取封裝起來,需要使用的時候傳入相應的引數獲取相關的物件或資料。工廠模式是對建立物件進行封裝,乙個對操作行為進行...

java設計模式之策略模式

策略模式 一系列的演算法 將每個演算法封裝起來 使他們可以相互替換 需要設計乙個介面 為這個一系列實現類提供統一的方法 多個實現類實現該介面 設計乙個抽象類 提供輔助函式 在使用的過程中可以適配改換演算法inte ce icalculator abstract class abstractcalcu...