У меня есть несколько проектов, которые используют мою библиотеку API. Этот API использует общее имя класса, например «Документ» или «Контракт», для своих моделей.
Я знаю, что могу использовать префикс, но я спрашиваю себя, не лучше ли делать внутренние классы следующим образом:
//My main class
class MyApi {
func fetchDocuments(completion: ([Document]) -> Void){}
func fetchContracts(completion: ([Contract]) -> Void){}
}
//MyApi.Document.swift
extension MyApi {
class Document {
....
}
}
//MyApi.Contract.swift
extension MyApi {
class Contract {
....
}
}
//a cell config
func setup(document: MyApi.Document) {
}
Кажется более ясным, что этот объект связан с этим API и разрешает конфликт имен с другим классом с тем же именем. Как вы думаете, это хорошее решение? Какой вариант, если нет?