Por que haveria uma vantagem em usar um método estático e passar a referência a um objeto como parâmetro, em vez de chamar o método em um objeto?
Para esclarecer o que quero dizer, considere a seguinte classe:
public class SomeClass {
private double someValue;
public SomeClass() {
// Some constructor in which someValue is set
}
public void incrementValue() {
someValue++;
}
}
Comparado a esta implementação alternativa com um método estático:
public class SomeClass {
private double someValue;
public SomeClass() {
// Some constructor in which someValue is set
}
public static void incrementValue(SomeClass obj) {
obj.someValue++;
}
}
Minha pergunta não está restrita apenas a essa classe; qualquer ponto em que você passe um objeto em vez de chamá-lo em um método é o que me interessa. Isso é sempre vantajoso? Se sim, por quê?