Я смущен о том, какая разница между протоколом и интерфейсом? Кажется, что они делают то же самое?В чем разница между протоколом и интерфейсом в Objective-c?
Это как абстрактное на C#, в котором вы должны его реализовать?
Я смущен о том, какая разница между протоколом и интерфейсом? Кажется, что они делают то же самое?В чем разница между протоколом и интерфейсом в Objective-c?
Это как абстрактное на C#, в котором вы должны его реализовать?
протокол в Objective-C является такой же, как интерфейс в Java, если то, что вы имеете в виду
Это как абстрактный в C#, в котором вы должны его реализовать? – user333639
yup, вроде. Обратите внимание, что существуют различия между абстрактными классами и интерфейсами в C#. Но интерфейс в C# такой же, как интерфейс в Java – SirLenz0rlot
Objective-C: .
Java: interface
.
В противном случае нет разницы.
В Objective C интерфейс эквивалентен объявлению класса C++. И протокол эквивалентен интерфейсу Java.
Редактировать: В Objective C определение класса разделяется на два компонента, называемых интерфейсом и реализацией, что позволяет сжимать файлы заголовков. Это похоже на C++. У Java нет эквивалента, потому что вы реализуете свои функции класса в определении класса. В этом отношении C# похож на Java.
In Java - you implement an Interface
In Swift/Objective C - you conform to a Protocol
"Program to an Interface, not an Implementation"
- Design Patterns 1995
Протокол представляет собой группу связанных свойств и методов, которые могут быть реализованы любым классом. Они более гибкие, чем интерфейс обычного класса, поскольку они позволяют повторно использовать единую декларацию API в совершенно несвязанных классах. Это позволяет представлять горизонтальные отношения поверх существующей иерархии классов.
Интерфейс класса объявляет методы и свойства, связанные с этим классом.
Протокол, напротив, используется для объявления методов и свойств, которые не зависят от какого-либо конкретного класса.
Возможный дубликат [Различия между интерфейсами Java и протоколами Objective-C?] (Http://stackoverflow.com/questions/990360/differences-between-java-interfaces-and-objective-c-protocols) – 2014-02-11 16:34:58