delegate とは何か(1)

オブジェクト指向プログラミングのテクニックで delegate と呼ばれるデザインパターンがあります。

iOS のアプリを作るときには頻繁に利用することになるのですが、最近ようやく意味が分かってきた、というより、初めからこれを分かっていないと iOS のプログラムを組みにくいと思う。

残念ながら私は初めから分かっておらず、試行錯誤の末にようやく理解するに至ったわけですが、時間が経ってまた分からなくなったら参照できるように、記しておこうと思います。

 

delegate とは、辞書を引くと「代理人」、「委任」、「委譲」などの意味であることがわかります。

デザインパターンdelegate が分かってしまえば、「あーなるほど」と思うのですが、初学者にはとてもわかりにくい概念です。

私もはじめは主にネットの情報を調べて、必要に応じてプリントしたりしてなんども読み直したりしたのですが、他の方の説明では、

・赤ちゃんがオムツでクソしたからケツ拭いてくれと泣くようなもの

・protcol を通じた通知

など、これまた、分かってしまえばその通りなのですが、分かっていないうちは??でした。

なぜ自身が理解できなかったかというと、必要性があっての delegate なのですが、その「必要性」を理解していなかったからだろうと思います。

 

続く。