18. 代码重构实践
代码重构的两个技巧
可能看到这里的时候,你已经发现了一些问题,比如我们的接口 getWeather
,它一个接口干了两件事情:
- 获取实时天气;
- 获取天气预报。
虽然这么设计没啥问题,但是我们还是希望我们的作品更加优雅,就 $type
参数而言,base
代表实时,all
代表预报本来就不是特别合理的设计,但是接口如此我们也只能妥协,我们有两个方法来改善这个问题:
重新设计参数
我们不直接对用户暴露接口参数,重新设计合理方便阅读的参数对外使用,将设计的参数与接口参数作对应,比如,我们可以改成下面这样子:
src/Weather.php
.
.
.
public function getWeather($city, $type = 'live', $format = 'json')
{
$url = 'https://restapi.amap.com/v3/weather/weatherInfo';
$types = [
'live' => 'base',...