Dì che hai una lezione di auto. Le proprietà che hanno senso per una classe Car potrebbero essere:
var make;
var model;
var year;
var turnOn; // a function
Ma la funzione turnOn
è molto complicata e finisce per richiedere una variabile statica e una coppia di funzioni secondarie:
var isTurningOn; // too specific to be a class variable
function turnOn() {
// 30 lines to start the engine
// 30 lines to start the air conditioner
// 30 lines to start the radio
}
Quindi ora abbiamo una funzione che forse non è propriamente adatta per essere creata nella sua classe e sta inquinando la classe Car con una variabile che utilizza solo la funzione turnOn
. Inoltre la funzione contiene sezioni di codice che dovrebbero essere inserite nelle proprie funzioni. Quindi cosa fai in situazioni come questa?