我有4種方法基本相似,但我無法弄清楚如何重構他們如何重構這些方法?
public String listWeatherConditions()
{
String retVal = "";
SimpleDateFormat formatter = new SimpleDateFormat("hh:mm a");
for(Map.Entry<String , ArrayList<Weather>> entry : this.weathers.entrySet())
{
retVal = String.format("\n Data From %s \n", entry.getKey());
retVal += String.format("displaying \tWeather Conditions hPa\n","");
for (Weather element : this.weathers.get(entry.getKey()))
{
retVal += String.format("%s\t\t%s\n",formatter.format(element.getCalculatedDate()) , element.getConditions());
}
}
retVal += "--------------------";
return retVal;
}
public String listWind()
{
String retVal = "";
SimpleDateFormat formatter = new SimpleDateFormat("hh:mm a");
for(Map.Entry<String , ArrayList<Weather>> entry : this.weathers.entrySet())
{
retVal = String.format("\n Data From %s \n", entry.getKey());
retVal += String.format("displaying \tWind Direction\tWind SpeedKm/h\tWindDirDegrees\n","");
for (Weather element : this.weathers.get(entry.getKey()))
{
retVal += String.format("%s\t\t%s\t\t%s\t\t%d\n", formatter.format(element.getCalculatedDate()), element.getWindDirection() , element.getWindSpeedKmh() , element.getWindDirDegrees());
}
}
retVal += "--------------------";
return retVal;
}
我怎麼可以重構呢?
我只算2種方法定義格式的策略。 –
我在這裏只複製了其中的兩個,只是爲了方便 –