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

0 java design-patterns software-design

在大多数无线电设备中,我们可以使用与此类型兼容的解调模式配置我们想要探索和监听电台的波.

AM和FM至少有两种类型.在这种情况下,我们可以将无线电设备建模如下:

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

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

小智 7

你为什么不使用多态?

建立一个界面:

interface Radio {
   void modulate();
}
Run Code Online (Sandbox Code Playgroud)

而不是实现2个类:

FMRadio implements Radio{

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

AMRadio implements Radio{

    public void demodule(){
      //AM modulation
    }
}
Run Code Online (Sandbox Code Playgroud)

而且,在你的主要,你可以去:

Radio myRadio = new FMRadio();
myRadio.demodule();
Run Code Online (Sandbox Code Playgroud)