以下是在没有上下文类的情况下使用策略模式的简单示例。有两种实现策略可以实现接口并以不同的方式解决相同的问题。EnglishTranslation类的用户可以通过指定所需的策略来调用translation方法并选择他们要用于翻译的策略。
// 策略界面 public interface TranslationStrategy { String translate(String phrase); } // 美国战略实施 public class AmericanTranslationStrategy implements TranslationStrategy { @Override public String translate(String phrase) { return phrase + ", bro"; } } // 澳大利亚战略实施 public class AustralianTranslationStrategy implements TranslationStrategy { @Override public String translate(String phrase) { return phrase + ", mate"; } } // 公开翻译方法的主类 public class EnglishTranslation { // 使用给定策略翻译短语 public static String translate(String phrase, TranslationStrategy strategy) { return strategy.translate(phrase); } // 用法示例 public static void main(String[] args) { // 使用AustralianTranslationStrategy类翻译短语 String aussieHello = translate("Hello", new AustralianTranslationStrategy()); // 你好伙伴 // 使用AmericanTranslationStrategy类翻译短语 String usaHello = translate("Hello", new AmericanTranslationStrategy()); // 喂兄弟 } }