Design patterns 没有上下文类/ Java的策略模式
示例
以下是在没有上下文类的情况下使用策略模式的简单示例。有两种实现策略可以实现接口并以不同的方式解决相同的问题。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()); //喂兄弟 } }