Swift: динамическое создание класса
26 марта 2017, 17:20
protocol Runable { init() } class AdvHandler: Runable{ required init(){ } func run(){ print("run class is runnable()") } } func createInstance<T>(typeThing:T.Type) -> T where T:Runable { return typeThing.init() }
Смысл этого подхода в том что метод createInstance понятия не имеет что за класс он создаёт для клиента.
это открывает большие возможности абстрагирования.
Повышая уровень абстракции.
Применение
let a = createInstance(typeThing: AdvHandler.self) as AdvHandler a.run()
Твитнуть
Поделиться
Поделиться
Популярное