ciao!

cercando di migliorare un pò il "design" di un programmino, volevo un consiglio sul codice che avevo scritto.

questo quello iniziale:
codice:
public class ListImages {
    public static ArrayList<String> getImages(Stage stage) {
        ArrayList<String> images = new ArrayList<>();
        DirectoryChooser dc = new DirectoryChooser();
        dc.setTitle("Open photo directory");
        dc.setInitialDirectory(new File(System.getProperty("user.home")));
        File dir = dc.showDialog(stage);
        if (dir != null) {
            File[] files = dir.listFiles(
                    (dir1, name) -> (
                            name.endsWith(".jpg") ||
                                    name.endsWith(".jpeg")
                                    || name.endsWith(".png")
                    ));
            for (File f : files) {
                images.add(f.getAbsolutePath());
            }
        }
        return images;
    }
}
l'avrei spezzato in due classi separate.
questo fa partire solo il DirectoryChooser:
codice:
public class ListImages {
    public static File chooseDir(Stage stage) {
        DirectoryChooser dc = new DirectoryChooser();
        dc.setTitle("Open photo directory");
        dc.setInitialDirectory(new File(System.getProperty("user.home")));
        return dc.showDialog(stage);
    }
}
questo prende la directory e lista le immagini:
codice:
public class ListImagesDirectory {
    public ArrayList<String> getImages(File dir) {
        ArrayList<String> images = new ArrayList<>();
        if (dir != null) {
            File[] files = dir.listFiles(
                    (dir1, name) -> (
                            name.endsWith(".jpg") || name.endsWith(".jpeg") || name.endsWith(".png")
                    ));
            for (File f : files) {
                images.add(f.getAbsolutePath());
            }
        }
        return images;
    }
}
secondo può andare?
o era inutile fare questa modifica??