使用Enums的策略模式。需要一個(gè)簡(jiǎn)單的Java示例
應(yīng)該這樣做:
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;} };}
這是對(duì)策略使用的Wikipedia文章的重新實(shí)現(xiàn)enum。
或更長(zhǎng)一點(diǎn)但更清楚的是一種策略模式:
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中的策略模式和枚舉。我已經(jīng)對(duì)此進(jìn)行了谷歌搜索,并找到了一些有關(guān)該主題的文章,但是對(duì)于我的理解,其中大多數(shù)似乎太復(fù)雜了。誰(shuí)能提供一個(gè)簡(jiǎn)單的示例或另一個(gè)鏈接,使用java中的外行術(shù)語(yǔ)枚舉來(lái)演示策略模式?
預(yù)先謝謝你。
相關(guān)文章:
1. 測(cè)試自動(dòng)化html元素選擇器元素ID或DataAttribute [關(guān)閉]2. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境3. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!4. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?5. spring-mvc - spring-session-redis HttpSessionListener失效6. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫入日志信息。7. 淺談Vue使用Cascader級(jí)聯(lián)選擇器數(shù)據(jù)回顯中的坑8. javascript - 在 model里定義的 引用表模型時(shí),model為undefined。9. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問題?。?/a>10. mysql - 查詢 修改數(shù)據(jù)庫(kù)優(yōu)化問題吧

網(wǎng)公網(wǎng)安備