ページ

2012年5月12日土曜日

mac:Objective-C プロトコルと非形式プロトコル


Objective-C を勉強中だが、どうもこのプロトコルというのが性に合わない。

java の方が性に合っているというせいもあり、どうもjava のInterface と比べてしまう。
java のInterface は過去の経緯からいうと、Objective-C のプロトコルを昇華させたものという見方が世間では一般的解釈なようだ。
それには異論はない。

しかし、やはり後発で優れた(とブログ主は考えている)java のInterface と比べて、このプロトコルがどうも古臭く泥臭く感じてしまう。

でも、まだプロトコルはいい。
使い方も、仕様も理解できる。
やはり一番納得のいかないのは「非形式」プロトコルだ。

非形式プロトコルには、何かこう・・・無法地帯なイメージがこびりつく。
NSObject に常に纏わりつき、プログラマーは一生純粋なNSObject のサブクラスを作ることができない。(気が付くと何かしらの非型式プロトコルがくっついている)
と言うか、どんだけNSObject に業を背負わせれば気が済むのだろう。

その点、Java のObject Class のなんと悠然としたことか。
すべてのClass の頂点に立ちながら、シンプルさを失っていない。
NSObject は非型式プロトコルによって知らないうちに汚されてしまっている・・・感じがするのだ。

以上、まだObjective-C 勉強中でその真髄に触れてもいない未熟者の戯言。