Transcript
Category Image1
DrinkPriceClass DrinkPriceClass+Fire
DrinkPriceClass+BossDrinkMachineClass
●getPrice ●getPriceKilimanjaro
●getPriceRainbowuse DrinkPriceClass!
●isDiscountKilimanjaro
Inherit Image1DrinkPriceClass DrinkPriceSubClass
price1 price1price2
●getPrice ●getPricePlus200
can use getPrice!can override getPrice!
can add member!
can add method!
Category Image2DrinkPriceClass
DrinkPriceClass+Fire
DrinkPriceClass+Boss
DrinkMachineClassuse
can add method!
can not overide!
Category Strong Point
下位クラスを作成する必要がない。
元になるクラスが変更された場合、継承したクラスより影響が少な
い。
作業を分担しやすくなる。
命名規則を下記のよう作成することで可読性が高くなる。
クラス名+カテゴリ名.h クラス名+カテゴリ名.m
!
Category Weak Point
基本的にメンバー変数の追加ができない
Asscosiative Referencesという方法で追加ができ
る。(またの機会にikeさんからお願いしたいと思いま
す。。(^_^)/)
カテゴリ化するクラスの同じメソッドを作成できるが、プログラムは予測できない方式で動作する可能性がある。
additional info Why can not Overide?
DrinkPriceClass
DrinkPriceClass+Boss
●getPriceBoss
●getPriceBoss
DrinkPriceClass+Fire●getPriceBoss
do you know price of Boss?
top related