ćć¬ć¼ć ćÆć¼ćÆ
åå
is-a/has-aé¢äæ
is-a 㯠ē¶ęæé¢äæ. has-a 㯠å å«é¢äæ (å§č²).
šis-aé¢äæ
šē¶ęæ(Inheritance)é¢äæć蔨ć代ęæč”Øē¾. B is-a AćØćÆ, BćÆAć®ćµććÆć©ć¹. ć«ćććę±å.
is-a 俔仰ćØćÆ, ćŖćć§ćē¶ęæććć°ćććØććčćę¹.
šhas-aé¢äæ
å å«, ē§»č²é¢äæć示ć代ęæč”Øē¾.
š”is-aćÆåé”ć§has-aćÆåč§£
ref. åęęę³ć®ććć³ļ¼ćåč§£ćØåé”ććć.
- 対豔ćåé”ćć¦ēč§£ććę¹ę³ćis-aé¢äæ.
- 対豔ćććåē“ćŖę§ęč¦ē“ ć«åč§£ćć¦ēč§£ććę¹ę³ćhas-aé¢äæ.
ćć¢ćć®ä¾ć§ćÆ,
- ćć¢ććÆéµē¤ę„½åØ.
- ćć¢ć is-a éµē¤ę„½åØ.
- ćć¢ććÆéµē¤ćęć¤.
- ćć¢ć has-a éµē¤.
āØis-aćÆćć©ć«ćć§has-aćÆćæć°
šWikić®ć”ć¢ćę“ēćććØć, ćæć°ćØćć©ć«ćć®ć©ć”ććć¤ćććę©ćććØććććć.
ćććÆ, OOPć§ćććØććć®, is-aćØhas-ać®é¢äæć«ä¼¼ć¦ććććØć«ę°ć„ćć.
- is-aćØćÆ, ē¶ęæé¢äæć§ćććć©ć«ćę§é .
- has-aćØćÆ, ē§»č²é¢äæć§ćććæć°ć«ććć°ć«ć¼ćć³ć°.
ććć”ć¢ćć²ćØć¤ć®ćć”ć¤ć«ć«ććć¦ć, å„ć®ćć”ć¤ć«ć«å „ćććććØćÆćććććć. ćććÆOOPć«ćć榚å¤éē¶ęæć®åé”ćØćć¦ććē„ććć¦ććććØć . ćć®å “å, ćæć°ćć¤ćć£ć¦ę å ±ćę“ēććć®ćčÆć解決ę¹ę³.
ćć åäŗŗēć«ćÆ, ē©äŗćēč§£ććććØćććØćć«, ćć©ć«ćę§é ć«ććććććć¦ć³ć®ēč§£ć®ć»ććććć ć¢ćććććć¹ćć¼ććéć. äøćććæććććć.
šćŖććøć§ćÆćęåć®ććć
OOP ć® 2 大åå
ćŖććøć§ćÆćęåć®ććććØćÆ, ćŗććŖä»„äø.
šęµåēč¦ē“ ćę¢ćåŗćć¦ć«ćć»ć«åćć
ćÆć©ć¹ē¶ęæććććŖććøć§ćÆćć®éē“ćå¤ēØćć
åč©/ åč© ę½åŗę³
- åé”é åć«ååØććåč©ćę“ćåŗććććć蔨ē¾ćććŖććøć§ćÆććēęćć.
- åč©ć«é¢é£ććåč©ćę“ćåŗć,ćććć蔨ē¾ććć”ć½ćććčæ½å ćć
å ±éę§/ åÆå¤ę§ åęę³
- å
±éę§åę:
- ęéćēµć£ć¦ćå¤åćć«ććę§é ćč¦ć¤ćććć®
- å ±éę§åęć«ćć£ć¦ć¾ćØććććę¦åæµćę½č±”ćÆć©ć¹ć«ćć£ć¦č”Øē¾
- åÆå¤ę§åę:
- å¤åććććę§é ćę“ćåŗććć®
- åÆå¤ę§åęć§å¾ćęµåēč¦ē“ ćÆę½č±”ćÆć©ć¹ć®ę“¾ēćÆć©ć¹ć«ćć£ć¦å®č£ ććć
čØčØęé :
- (ę½č±”ćÆć©ć¹) ćć®ćÆć©ć¹ćęć¤č²¬åććć¹ć¦å Øćććć«ćÆć©ććććŖć¤ć³ćæć¼ćć§ć¤ć¹ćåæ č¦ć?
- (擾ēćÆć©ć¹) ćć®ē¹å®å®č£ ć®äøć§ć©ćć®ććć«ćć¦äøććććä»ę§ćå®č£ ć§ććć®ć?
Jim Coplien ćęå±. p235 第 15 ē« ććęē².
References
- ćŖććøć§ćÆćęåć®ę¬ę (7) ć»ćŖććøć§ćÆćęååę - Strategic Choice
- å ±éę§ć»åÆå¤ę§åę (commonality/variavility analysis) - Debuginfo