Предположим, что существует протокол Draggable
, который обычно будет соответствовать объекту UIView
protocol Draggable {
drag()
}
Мы можем либо реализовать drag()
в расширении протокола как option 1
// option 1
extension Draggable where Self: UIView {
func drag() {
// implementation
}
}
extension UIView: Draggable {} // added after @Rich Tolley answer
Или мы можем реализовать drag()
в расширении UIView
как option 2
// option 2
extension UIView: Draggable {
func drag() {
// implementation
}
}
Вот мой вопрос:
- Есть ли разница между этими двумя подходами (вариант 1 и вариант 2)?
- Если да, какая разница и как выбрать, когда мы проектируем наш проект или библиотеку?
И идея была бы полезна.