Возможно, я все еще думаю об Objective-C. Я хотел бы зарегистрировать классы для использования в шаблоне фабрики. Классы соответствуют протоколу, такому как:
protocol URLNavigation: class {
static func canHandle(url: URL) -> Bool
static func instantiate(with url: URL) -> UIViewController?
var url: URL? { get set }
}
и тогда в моем классе Factory есть что-то вроде:
var registeredTypes: [UIViewController.self & URLNavigation]
Но я знаю, что строка выше неверна. Я пытаюсь сохранить ссылки на объекты классов, которые будут использоваться для создания экземпляров этих классов.
И мне также интересно, как бы я их реализовал, используя элемент в этом массиве 'selectedTypes'.
Надеюсь, понятно, чего я пытаюсь достичь. Возможно, есть другой подход?