Я немного учусь, и мне интересно, есть ли какой-нибудь лучший метод для моделирования данных, не зависящих от инфраструктуры постоянства.
Я в порядке с такими мелочами, как:
protocol Item {
var identifier: String { get }
var name: String { get set }
}
и
struct SomeItem: Item {
let identifier: String = UUID().uuidString
var name: String = "New Item"
}
и его менеджер, что-то вроде:
protocol ItemManager {
/// get some objects matching query criteria
func objects(matching query: Query) -> [Item]
/// get a specific object
func object(withID identifier: String) -> Item?
/// commit these to disk.
func save(_ object: Item) throws
/// deletes the objects from disk.
func delete(_ objects: [Item])
/// creates a new object but does not save it.
func create() -> Item
}
Но предположим, что теперь мы хотим пометить элементы категориями.
Каков наилучший способ управлять / изменить эти отношения? На модели или через менеджерский метод?
В конечном счете, я хочу построить модель данных, ориентированную на протокол, и иметь возможность менять тип персистентности. Например, для тестирования или проверки, или просто если я использую CoreData для запуска, но затем хочу переместить что-то вроде Realm.io и не нужно переписывать мое приложение.
Было бы замечательно, если бы кто-то мог указать мне правильное направление, будь то ссылки и ресурсы для моего рассмотрения.
Я знаю, что этот вопрос немного расплывчатый, но я не знаю, как еще его задать. Если я в корне ошибаюсь, пожалуйста, прокомментируйте!