cro*_*wne 11 java coding-style
我更喜欢使用局部变量而不是多次调用同一个方法.
/*
* 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();
}
Run Code Online (Sandbox Code Playgroud)
你更喜欢哪个?为什么?
出于你提到的所有原因,我更喜欢第一个版本.特别是(只是说明你的第四点),这意味着你肯定会获得一致的结果......如果在第一次调用时getVehicle()返回a Car,那么你可能会在第二个版本中得到可怕的令人讨厌的结果,然后是Bike第二个版本. ..
表演方面并没有打扰我(List.size()例如,我会愉快地反复打电话),但可读性,一致性和非重复性都更为重要.基本上,第一个片段传达了"获取价值,然后使用它"的想法比第二个更有效.
所以是的,我和你在一起......有人向你推荐第二种形式吗?
是的,第一个肯定更好。我永远不会采用第二种方法。但你应该考虑更多地使用多态性。如此严重地依赖instanceof并不是好的 OO 设计。