Credo che questa sia una domanda agnostica sulla lingua: se non lo è, correggimi.
Diciamo che ho una classe (lo snippet di codice è una sorta di "pseudo codice")
class Car:
private steering_wheel
private engine
public Car(steering_wheel, engine):
this.steering_wheel = steering_wheel
this.engine = engine
public void service():
clean_steering_wheel()
repair_engine()
private void clean_steering_wheel():
this.steering_wheel.do_stuff()
private void repair_engine():
this.engine.do_stuff()
che funziona bene! Ma potrei anche cambiare un po 'i metodi privati e lasciare che usino i campi (i.e steering_wheel
e engine
) via argomenti, non direttamente
class Car:
private steering_wheel
private engine
public Car(steering_wheel, engine):
this.steering_wheel = steering_wheel
this.engine = engine
public void service():
clean_steering_wheel(this.steering_wheel)
repair_engine(this.engine)
private void clean_steering_wheel(steering_wheel):
steering_wheel.do_stuff()
private void repair_engine(engine):
engine.do_stuff()
Supponiamo che tutti i parametri (argomenti) siano passati per riferimento.
Quali sono i vantaggi e gli svantaggi di queste soluzioni? Quale è considerato una pratica migliore? Quale preferisci?