DS Ross, 1 DD Giri, 1 MM Akram, 1 JP Catalano, 1 KJ Van Zee, 2 E Brogi 1
[KJ-Code] Category By Choi.HJ (JP Ver.)
-
Upload
- -
Category
Technology
-
view
87 -
download
0
Transcript of [KJ-Code] Category By Choi.HJ (JP Ver.)
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?