Doubling Down on Protocol-Oriented Programming
khanlou.com
khanlou.com
And it's annoying to have to explain this to all the other devs on the team who don't use Obj-C. Here's hoping Swift fixes the vocabulary.
EDIT: I suppose the main difference between Swift's "protocol" and Java's "interface" is that Swift lets the dev provide actual implementations for some declared functions. "Protocol" is still not an idea word in my opinion.
In Swift, on the other hand, one can make a class conform to a protocol, even if one does not have access to its source code (https://www.andrewcbancroft.com/2014/12/02/send-a-type-to-ob...)
There is so much here I wish I had when I struggled with many software design issues in C++.