以下两个函数中哪一个是最专业的代码样式?
如果函数变得更加复杂和庞大,例如需要进行20个检查怎么办?
注意:我需要在每次检查后执行一些操作,所以不能像下面这样将所有内容都连接在一个if语句中:
if (vehicle.isBus) && (vehicle.numberOfWheels == 6) && (vehicle.motorVersion == 2019)
如果函数变得更加复杂和庞大,例如需要进行20个检查怎么办?
注意:我需要在每次检查后执行一些操作,所以不能像下面这样将所有内容都连接在一个if语句中:
if (vehicle.isBus) && (vehicle.numberOfWheels == 6) && (vehicle.motorVersion == 2019)
//first alternative
public bool validate(Vehicle vehicle)
{
if(vehicle.isBus)
{
//do some stuff here related to vehicle.isBus
if (vehicle.numberOfWheels == 6)
{
//do some stuff here related to vehicle.numberOfWheels
if (vehicle.motorVersion == 2019)
{
//do some stuff here related to vehicle.motorVersion
return true;
}
}
}
return false;
}
//second alternative
public bool validate(Vehicle vehicle)
{
if (!vehicle.isBus)
{
return false;
}
//do some stuff here related to vehicle.isBus
if (vehicle.numberOfWheels != 6)
{
return false;
}
//do some stuff here related to vehicle.numberOfWheels
if (vehicle.motorVersion != 2019)
{
return false;
}
//do some stuff here related to vehicle.motorVersion
return true;
}
vehicle.isMinivan
,然后就需要进行重大重构了。 - Theodor Zoulias