2016-10-27 2 views
1

Я писал код, но я не уверен, что лучше. В одном случае легче читать, что происходит, но у меня больше строк кода. С другой стороны, у вас меньше строк кода, но я думаю, что это труднее понять.Какой код лучше?

String imp = importance.getSelectedItem().toString(); 
String title_str = title.getText().toString(); 
String body_str = body.getText().toString(); 
String location_str = location.getText().toString(); 
int day = date.getDayOfMonth(); 
int month = date.getMonth()+1; 
int year = date.getYear(); 
int hh = time.getCurrentHour(); 
int mm = time.getCurrentMinute(); 
String date_str = year+"/"+month+"/"+day+" " + hh+":"+mm +":00"; // yyyy/MM/dd HH:mm:ss 
long dateMilliseconds = new Timeconversion().timeConversion(date_str); 

Conference conference = ConferenceBuilder.conference() 
     .id(idConf) 
     .importance(Double.parseDouble(imp)) 
     .title(title_str) 
     .body(body_str) 
     .location(location_str) 
     .timeInMilliseconds(dateMilliseconds) 
     .build(); 

или

Conference conference2 = ConferenceBuilder.conference() 
           .id(idConf) 
           .importance(Double.parseDouble(importance.getSelectedItem().toString())) 
           .title(title.getText().toString()) 
           .body(body.getText().toString()) 
           .location(location.getText().toString()) 
           // yyyy/MM/dd HH:mm:ss 
           .timeInMilliseconds(new Timeconversion().timeConversion(date.getYear()+"/"+date.getMonth()+1+"/"+date.getDayOfMonth()+" " + time.getCurrentHour()+":"+time.getCurrentMinute() +":00")) 
           .build(); 
+3

Идите для удобочитаемости. И, к слову, слово «кусок», а не «мир». «Мир» означает не борьбу. –

+0

Спасибо @MikeDunlavey – mavi

+0

Также я думаю, что это лучше всего использовать в качестве java-вопроса. Я думаю, что нет ничего важного для Android или для этого требуется знание Android. –

ответ

1

Split разница. Я хотел бы сделать что-то вроде этого:

Conference conference2 = ConferenceBuilder.conference() 
      .id(idConf) 
      .importance(Double.parseDouble(importance.getSelectedItem().toString())) 
      .title(title.getText().toString()) 
      .body(body.getText().toString()) 
      .location(location.getText().toString()) 
      // yyyy/MM/dd HH:mm:ss 
      .timeInMilliseconds(getTimeInMillis(datePicker, timePicker)) 
      .build(); 
} 

private long getTimeInMillis(DatePicker datePicker, TimePicker timePicker) { 
    Calendar calendar = Calendar.getInstance(); 
    calendar.set(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(), 
    timePicker.getCurrentHour(), timePicker.getCurrentMinute(), 0); 
    return calendar.getTimeInMillis(); 
} 

Я не думаю, что извлечение объектов типа String из ваших TextViews делает вещи любой более читаемым, так как ваши TextViews будут довольно четко названы.

+0

'SimpleDateFormat' было бы хорошим дополнением к ответу –

+0

Я не знаю, что такое Timeconversion(), или делает он что-то другое, или я с удовольствием обновляю свой ответ. Я догадался, что возвращаемая стоимость была длинной, основанной на части timeInMillis. Если OP хочет изложить конкретное значение, с удовольствием оптимизируем ответ. Ключевым моментом здесь является то, что, поскольку этот конкретный кусок немного здоров, включение его в четко обозначенный метод делает код более читаемым. –

+0

Очевидно, что 'date.getYear() +"/"+ date.getMonth()' получает строку. Это была моя точка –

Смежные вопросы