java - 确定要使用哪种设计模式?

标签 java design-patterns software-design

在大多数 radio 设备中,我们可以配置我们想要探索的波并使用与该类型兼容的解调模式收听电台。

至少有两种类型 AM 和 FM。在这种情况下,我们可以对 radio 设备进行建模,如下所示:

class RadioDevice {
    void demodulate (String m) {
        if(m.equals("FM")
            /* FM modelation */
        else if(m.equals("AM")
            /* AM modelation */
    }
}

在这种情况下我该如何应用策略模式?

最佳答案

为什么不使用多态性?

制作一个界面:

interface Radio {
   void modulate();
}

然后实现 2 个类:

FMRadio implements Radio{

    public void demodule(){
      //FM modulation
    }
}

AMRadio implements Radio{

    public void demodule(){
      //AM modulation
    }
}

然后,在你的主要部分,你可以:

Radio myRadio = new FMRadio();
myRadio.demodule();

关于java - 确定要使用哪种设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47622493/

相关文章:

java - 像 java.awt.Robot 这样的 Android API

java - JBoss 5.1.0 企业版。随机出现 java.lang.NoClassDefFoundError

java - 如何生成需求,使用单例进行数据库连接的优缺点?

java - 如何为两个不同的子类创建一个父类(super class)

c - 如何检查函数是否正在回调自身

c# - 运行命令提示符 .exe 应用程序时,将超时定义为 C# WPF 应用程序中的特定行

java - mp3 转换 |在单独的线程上播放(mp3)

java - Wicket 应用程序可以在没有管理员密码的情况下触发自身重启吗?

design-patterns - 什么时候应该使用复合设计模式?

c# - 数据传输对象和报告