Perché ci sarebbe un vantaggio nell'usare un metodo statico e passare il riferimento a un oggetto come parametro piuttosto che chiamare il metodo su un oggetto?
Per chiarire cosa intendo, considera la seguente classe:
public class SomeClass {
private double someValue;
public SomeClass() {
// Some constructor in which someValue is set
}
public void incrementValue() {
someValue++;
}
}
Rispetto a questa implementazione alternativa con un metodo statico:
public class SomeClass {
private double someValue;
public SomeClass() {
// Some constructor in which someValue is set
}
public static void incrementValue(SomeClass obj) {
obj.someValue++;
}
}
La mia domanda non è limitata a questa classe da solo; qualsiasi punto in cui si passa un oggetto invece di chiamarlo su un metodo è ciò che mi interessa. È mai vantaggioso? Se sì, perché?