2012年11月29日木曜日

convenience method を簡易メソッドと訳すのはどうかと思う


要するにパラメータありのコンストラクタ的なクラスメソッドをconvenience method、もしくは人によってconvenience constructorと呼ぶよう。何れにしても機能的には、alloc してinitするのをいっぺんに済ませるためにconvenienceと言っているわけなので、簡易ではなく、便利とか、便利とか、便利とか、の意味になるだろう。簡易はあくまでかりそめのとか、本物、本格的になものに対してとりあえずの、とか、お手軽な、という意味で、それ自体が簡易であるということになり、書き方が簡単、という意味には成り得ない。

こうしたことも自分の電子*なら簡単にパッチを当てられるのだが。

ついでに言えば、そもそも、NSStringのstringWithFormat:は、createWithFormat:みたいに、それ自身がインスタンスをアロケートしていることを示唆するメッセージセレクタでなければならないんじゃないだろうか(createAnInstanceWithFormat とか、allocAndInitWithFormat:でもいいが、ネイティブの英語感が分からないのでその辺は何とも言えないところ)。ただポリモーフィズムがないとかあるとか言われるObjective-Cだが、さすがにセレクタに思いっきりstringは無いよなあ。この命名規則だとクラス毎に(nantokaClassNameWithFormat:みたいな)全部違うセレクタになってしまう。

*電子ブックのこと。自分は電子ブックを電子と略したい派。

2012/12/12 追記
どうやらallocとかnewが付くと、メモリ管理上呼び元が所有者になる、というルールがあるみたいだ。一方convenience method(コンビニエスメソッド)の返すインスタンスは、autorelesase付きで返す、とかなんとか。ARC化された今となっては過去の遺物か。

0 件のコメント:

コメントを投稿