Prefiero usar variables locales en lugar de múltiples llamadas al mismo método.Estilo de codificación Java, variables locales frente a llamadas al método repetido
/*
* I prefer this
*/
Vehicle vehicle = person.getVehicle()
if (vehicle instanceof Car) {
Car car = (Car) vehicle;
car.openSunroof();
} else if (vehicle instanceof Bike) {
Bike bike = (Bike) vehicle;
bike.foldKickstand();
}
/*
* Rather than this
*/
if (person.getVehicle() instanceof Car) {
Car car = (Car) person.getVehicle();
car.openSunroof();
} else if (person.getVehicle() instanceof Bike) {
Bike bike = (Bike) person.getVehicle();
bike.foldKickstand();
}
- creo que la primera forma en que se va a realizar un poquito más rápido
- creo que la segunda manera viola el principio DRY
- me parece la primera manera más legible y fácil de depurar (... OK insignificante porque podía pasar por encima)
- yo no quiero tener que hacer frente a la posibilidad de cambio de estado de objeto
¿Cuál prefieres y por qué?
Buen punto, eso podría hacerlo aún más limpio. Pero entonces podría estar buscando una interfaz común, como prepareForJourney(), que podría implementarse por separado en cada clase. Sin embargo, a menudo trabajamos con clases heredadas o de terceros que pueden no ser aptas para aplicar fácilmente una interfaz nueva, pero supongo que podrían incluirse y aplicar la interfaz al contenedor. – crowne