Зачем реализовывать это как синглтон? Можете ли вы убедиться, что отображение двух файловых диалогов никогда не произойдет?
Лучше иметь его как обычный класс; Вы не хотите встраивать ограничения, которые позже могут стать болевыми точками.
Не похоже, что ваше приложение будет критически перегружено миллионами обращений к файловому диалогу, и кто знает, возможно, когда-нибудь будет правильным решением иметь два файловых диалога. Даже если вы не отображаете их одновременно, возможно, удержание истории в диалоге «источник» и наличие отдельной истории в диалоге «место назначения» было бы благословением в программе передачи файлов.