2011年5月6日金曜日

クラスのカテゴリ機能

カテゴリ機能という言い方は我ながらおかしいと思うのだが、クラスのカテゴリ、って切ってしまうと、Objective-Cの記法というより、普通の説明みたいで分かり辛いというか、溶けてしまうので、カテゴリ機能と仮に付けている。

さて、そのカテゴリ機能(書く度に変だと思う:P)だが、名前空間ではないので、結局最後は1つのクラスに統合される。で、重複した場合、元になるクラス(カテゴリ修飾されていない)と重複した場合は、カテゴリ修飾された方が強い(勝つ)。しかしオーバライドとは違って、負けた方は”使えなくなる”ので注意が必要。

作業分担でも効果的とのことだが、ルートクラス(NSObject)にもカテゴリ機能を使ってメソッドを追加できるので、世代ギャップ的にぶつかるケースは出てきそうだが、メソッド名がそもそも長いというのが伝統らしいので、メソッド名の中に名前空間的修飾を入れてしまうのかもしれない。まるでCのように。というかCだし。あ、そういうこと?

といっておきながら、そんなに被ることもないか、という気も。

0 件のコメント:

コメントを投稿