当前位置: 首页 > 编程笔记 >

Design patterns 没有上下文类/ Java的策略模式

诸腾
2023-03-14
本文向大家介绍Design patterns 没有上下文类/ Java的策略模式,包括了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());
        // 喂兄弟
    }
}
           

 类似资料:
  • 主要内容:介绍,实现,Strategy.java,OperationAdd.java,OperationSubtract.java,OperationMultiply.java,Context.java,StrategyPatternDemo.java在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 contex

  • 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if...

  • 问题 解决问题的方式有多种,但是你需要在程序运行时选择(或是转换)这些方法。 解决方案 在策略对象(Strategy objects)中封装你的算法。 例如,给定一个未排序的列表,我们可以在不同情况下改变排序算法。 基类 StringSorter = (algorithm) -> sort: (list) -> algorithm list 策略 bubbleSort = (list) -

  • 应用场景 一个商场收银软件,营业员根据客户所购买的商品的单价和数量,向客户收费 用两个文本框来输入单价和数量,一个确定按钮来算出每种商品的费用,用个列表框来记录商品的清单,一个标签来记录总计,一个重置按钮来重新开始。 double total = 0.0d; private void btn0k_Click(object sender, EventArgs e) { double

  • 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if...

  • 策略模式 策略模式就是用统一的方法接口分别对不同类型的数据进行访问。比如说,现在我们想用pc看一部电影,此时应该怎么做呢?看电影嘛,当然需要各种播放电影的方法。rmvb要rmvb格式的方法,avi要avi的方法,mpeg要mpeg的方法。可是事实上,我们完全可以不去管是什么文件格式。因为播放器对所有的操作进行了抽象,不同的文件会自动调用相应的访问方法。 typedef struct _MovieP