Dopo molti anni, non riesco ancora a determinare il modo corretto di definire una classe / funzione per riprodurre il suono. Supponiamo che la mia app abbia bisogno di riprodurre alcuni suoni, ad esempio: clic sul pulsante, popup di errore, ... Come dovrei definire la funzione?
** Metodo 1: una sola funzione per tutti i suoni **
//simulate languages features that enums are numbers
const Sound={
    BUTTON_CLICK:0,
    ERROR_POPUP:1,
};
class MyClass{
  static playSound(sound){
    switch(sound){
      case Sound.BUTTON_CLICK:
        SoundLibrary.playSound('button_click.mp3');
      break;
      case Sound.ERROR_POPUP:
        SoundLibrary.playSound('error_popup.mp3');
      break;
    }
  }
}
** Metodo 2: una funzione per ogni suono **
class MyClass{
  static playButtonClickSound(){
    SoundLibrary.playSound('button_click.mp3');
  }
  static playErrorPopupSound(){
    SoundLibrary.playSound('error_popup.mp3');
  }
}
** Metodo 3: una classe per ogni suono **
class ButtonClickSound{
  static play(){
    SoundLibrary.playSound('button_click.mp3');
  }
}
class ErrorPopupSound{
  static play(){
    SoundLibrary.playSound('error_popup.mp3');
  }
}
** Method 4: (other methods)**
Quale modo dovrei usare?