Dovrei usare una chiusura invece di una classe quando ho solo un metodo?

1

Diciamo che ho una classe JavaScript che prende un sacco di impostazioni nel costruttore e quindi ha solo un metodo che l'utente della classe potrebbe voler chiamare più volte. Ecco un esempio:

class Doer {

    constructor(settings) {
        this._settings = settings;
    }

    function doIt(params) {
        //Return something based on this._settings and params.
    }

}

let myDoer = new Doer(mySettings);
myDoer.doIt(params);

Un approccio alternativo sarebbe utilizzare una chiusura:

function createDoer(settings) {
    return function doIt(params) {
        // Return something based on settings and params.
    }
}

let myDoer = createDoer(mySettings);
myDoer(myParams);

Quali sono i pro e i contro di questi due diversi modi di farlo? Quando dovrei usare una classe e quando dovrei usare una chiusura?

Da un lato, usare una classe sembra affidarsi eccessivamente a OOP quando è sufficiente un semplice concetto funzionale. Ma d'altra parte, la classe è più estensibile nel caso in cui le esigenze del progetto cambino.

    
posta Anders 10.02.2017 - 11:11
fonte

0 risposte

Leggi altre domande sui tag