Wolę używać zmiennych lokalnych zamiast wielu wywołań tej samej metody.Styl kodowania Java, zmienne lokalne a wielokrotne wywołania metod
/*
* 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();
}
- wierzę, że pierwszy sposób ma zamiar wykonać odrobinę szybciej
- myślę drugi sposób narusza DRY zasadę
- znajdę Pierwszy sposób bardziej czytelny i łatwiejszy do debugowania (... OK pomijalne ponieważ mogłem krok nad)
- nie chcę mieć do czynienia z możliwością państwa zmienił obiektu
Który wolisz i dlaczego?
Niezły punkt, który mógłby uczynić go jeszcze czystszym. Ale wtedy możesz potrzebować wspólnego interfejsu, takiego jak prepareForJourney(), który może być oddzielnie przypisywany w każdej klasie. Jednak często pracujemy z klasami zewnętrznymi lub starszymi, które mogą nie zapewniać łatwego stosowania nowego interfejsu, ale przypuszczam, że można je zawinąć i zastosować interfejs do opakowania. – crowne