成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

使用Enums的策略模式。需要一個(gè)簡單的Java示例

瀏覽:110日期:2024-05-02 10:27:24
如何解決使用Enums的策略模式。需要一個(gè)簡單的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;} };}

這是對策略使用的Wikipedia文章的重新實(shí)現(xiàn)enum。

或更長一點(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)對此進(jìn)行了谷歌搜索,并找到了一些有關(guān)該主題的文章,但是對于我的理解,其中大多數(shù)似乎太復(fù)雜了。誰能提供一個(gè)簡單的示例或另一個(gè)鏈接,使用java中的外行術(shù)語枚舉來演示策略模式?

預(yù)先謝謝你。

標(biāo)簽: java
相關(guān)文章: