>>411
https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html
http://best-practice-software-engineering.ifs.tuwien.ac.at/patterns/delegation.html#Structure
https://code.tutsplus.com/articles/design-patterns-delegation--cms-23901

Delegateはデリゲーションパターンにおいて処理を委譲されるクラスの役割名
「委譲する」という意味の動詞としても使われる

プロトコルは他言語で言うインターフェース

DelegationはCocoaでフレームワークから開発者の書いたコードを呼び出す場合によく使われるパターン
例えばTableViewの行を選択した時に何か独自の動作を行いたいなら
UITableViewDelegateに定義されている特定のメソッドを実装してDelegateとして設定しておくと
ユーザーが行を選択した時にDelegateとして設定したクラスの該当メソッドが呼び出されて開発者が書いたコードが実行される

UITableViewDelegateがプロトコルでそのプロトコルを実装したクラスがDelegate
プロトコルとの関係がわかりにくければUITableViewDelegateProtocolという名前を省略してると考えてるといいかも