UITableView 集合与 DIP。PoC
UITableView 集合与 DIP。PoC
这是一个PoC项目,展示了使用可重用的UITableViewCell实现依赖反转原则。
依赖反转原则
- 高级模块不应从低级模块导入任何内容。两者都应该依赖于抽象(例如,接口)。
- 抽象不应依赖于细节。细节(具体实现)应该取决于抽象。
一般概念
Роль ViewModel слоя (всё, что на белом фоне) заключается в согласовании Domain API c UI API. В этот слой входят:
- ViewModelProtocol'ы – контракты, которые реализует View слой.Это минимально необходимый интерфейс (отсылка к ISP)
- Адаптеры, которые конвертируют Domain API в UI I/O Framework API и обратно
TLDR;
Слой нужен для реализации инкапсуляции на уровне слоя/модуля.
Если возникает вопрос "зОчем?" стоит ответить себе на другой вопрос: "Для чего в OOП языки включены такие конструкции как set/get, области видимости, private, internal, public?Что будет если всё сделать просто public?”
Implementation for collections with reusable cells
То же самое, только для таблиц. Болше стрелок богу стрелок