Учитывая, что в представлении есть виджет выбора файла, а контроллер должен обрабатывать событие выбора файла, мне лучше написать метод контроллера:
public void fileSelected(String filePath){
//process filePath
}
or
public void fileSelected(){
String filePath = view.getSelectedFilePath();
//process filePath
}
Первый подход, кажется, вводит меньшую связь между C и V: C не знает, какие именно данные нужны C при обработке данного события.
Но это требует создания множества подробных методов, подобных getSelectedFile
на стороне V.
С другой стороны, второй подход может привести к загромождению методов контроллера в более сложных случаях, чем в примере (гораздо больше данных для передачи, чем просто filePath
).
Из вашего собственного опыта, какой подход вы предпочитаете?