712 :
名称未設定:
またヒレガス本のここ引用して基本教えなきゃいけない
他言語崩れの"自称オブジェクト指向プログラム経験者"さんが迷い込んできた?
3.2.5 継承vs使用
駆け出しのcocoaプログラマは、NSStringやNSMutablearrayのサブクラスを作ろうとしがちです。
しかし、そんなことをしてはいけません。スタイリッシュなObjective-Cプログラマは、もっと別の方法を使っているのです。
それはNSStringやNSMutableArrayを他のオブジェクトの一部とする手法です。これは「合成」(composition)として知られています。
確かにBankAccount(預金口座)のクラスをNSMutableArrayクラスのサブクラスにすることも可能でしょう。
だってつまるところ預金口座は取引履歴を集めたものなのですから。初心者はこういった罠に嵌まりやすいのです。
しかし、熟練者はNSObjectを継承してBankAccountというクラスを作成し、そのクラスにNSMutableArrayを参照する
transactions(取引履歴)というインスタンス変数を保持させるのです。
初心者は「BankAccountはNSMutableArrayを継承する」と表現します。しかし、熟練者は「BankAccountはNSMutableArrayを使用する」と表現するのです。
Objective-Cの一般的なイディオムでは「使用」は「継承」よりもずっとよく使用されるものなのです。
[MacOSX Cocoa プログラミング/アーロン・ヒレガス著]