使用Enums的策略模式。需要一個簡單的Java示例
應該這樣做:
interface Strategy { int execute(int a, int b);}enum Math implements Strategy { Add {@Overridepublic int execute(int a, int b) { return a + b;} }, Subtract {@Overridepublic int execute(int a, int b) { return a - b;} }, Multiply {@Overridepublic int execute(int a, int b) { return a * b;} };}
這是對策略使用的Wikipedia文章的重新實現enum。
或更長一點但更清楚的是一種策略模式:
public interface FailureStrategy { void fail (String message);}enum Failure implements FailureStrategy { Ignore {@Overridepublic void fail(String message) { // Do nothing on success.} }, LogToConsole {@Overridepublic void fail(String message) { System.out.println(message);} }, ErrToConsole {@Overridepublic void fail(String message) { System.err.println(message);} }, RingalarmBells {@Overridepublic void fail(String message) { // Left to the student.} }, SoundTheKlaxon {@Overridepublic void fail(String message) { // Left to the student.} }, EndTheWorld {@Overridepublic void fail(String message) { // Left to the student.} };}public class SomethingLethal { public FailureStrategy onFail = Failure.EndTheWorld;}public class SomethingDangerous { public FailureStrategy onFail = Failure.RingalarmBells;}public class SomethingBenign { public FailureStrategy onFail = Failure.Ignore;}解決方法
我試圖了解Java中的策略模式和枚舉。我已經對此進行了谷歌搜索,并找到了一些有關該主題的文章,但是對于我的理解,其中大多數似乎太復雜了。誰能提供一個簡單的示例或另一個鏈接,使用java中的外行術語枚舉來演示策略模式?
預先謝謝你。
相關文章:
1. javascript - 按鈕鏈接到另一個網址 怎么通過百度統計計算按鈕的點擊數量2. sql語句 - 如何在mysql中批量添加用戶?3. mysql 可以從 TCP 連接但是不能從 socket 鏈接4. mysql - PHP定時通知、按時發布怎么做?5. 怎么php怎么通過數組顯示sql查詢結果呢,查詢結果有多條,如圖。6. mysql - JAVA怎么實現一個DAO同時實現查詢兩個實體類的結果集7. 事務 - mysql共享鎖lock in share mode的實際使用場景8. mysql建表索引問題求助9. mysql - 數據庫建字段,默認值空和empty string有什么區別 11010. mysql 非主鍵做范圍查找實現原理的一點困惑
