æè²ãšåæ¥éçºã®é·å¹Žã«ããã£ãŠãç§ã¯åèªæœè±¡åã®æå³ãå®å
šã«ç解ããŠããªãå€ãã®åŠçãšéçºè
ã«äŒã£ãŠããŸããã ãã®çšèªã®æå³ãæ確ã«ããããã®å€ãã®è©Šã¿ã®ãã¡ããã®èšäºã¯å€æããŸããã ã«ããã®äžã«ãããã®ïŒ
- æœè±¡åã®å®çŸ©ãšããããOOPã®ã©ãããæ¥ããã®èª¬æã
- æœè±¡åã®éå£ãæœè±¡åã®å¯äœçšã§ãããã®ã®ç°¡åãªäŸã«ãã説æã
- ããŒãã³ãŒãã¯ã©ã®ããã«ååŸãããŸããïŒ
æœè±¡åãšã¯äœã§ããïŒ
ãŠã£ãããã£ã¢ã§ã¯ãæœè±¡åãšæœè±¡åã®ããã»ã¹ã次ã®ããã«å®çŸ©ããŠããŸãã
æœè±¡åïŒlatãAbstractioãã-æ°æŽããïŒ-æ¬è³ªçã§èŠåçãªå
åã匷調ããããã«ãéæ¬è³ªçãªåŽé¢ãç¹æ§ãç©äœïŒç©äœãŸãã¯çŸè±¡ïŒã®é¢ä¿ããã®èªèã®éçšã«ãããæ°æŽããã æœè±¡å; ãã®ãããªæ°æŽããã®çµæãšããŠã®çè«çãªäžè¬åã
ãšãŒãããã®å²åŠãšè«çã§ã¯ãæœè±¡åã¯ããŸããŸãäžè¬çãªã¢ãã«ãã€ãŸãæœè±¡åã®éå±€ã圢æããæŠå¿µã段éçã«çæããæ¹æ³ãšããŠè§£éãããŸãã æãçºéããæœè±¡åã·ã¹ãã ã¯æ°åŠã§ãã è°è«äžã®æŠå¿µã®æœè±¡åã®çšåºŠã¯ãæœè±¡åã®ã¬ãã«ãšåŒã°ããŸãã ç®æšãšç®çã«å¿ããŠãç°ãªãæœè±¡åã¬ãã«ã§åããªããžã§ã¯ãã«ã€ããŠè©±ãããšãã§ããŸããGrady Butchã¯æœè±¡åã®æŠå¿µãã¯ããã«åçŽã«å®çŸ©ããŠããŸãããæå³ã¯åãã§ãïŒ
æœè±¡åã¯ããªããžã§ã¯ããä»ã®ãã¹ãŠã®ãªããžã§ã¯ããšåºå¥ããæ¬è³ªçãªç¹æ§ã匷調ããŠããŸãããªãæœè±¡åãå¿
èŠãªã®ã§ããïŒ
æœè±¡åã¯ä¿è·æ©èœãå®è¡ããæ
å ±ãéå°ã«ãªã£ãŠãå¿ã倱ããªãããã«ããŸãã ããŒã«ãã³ã§æžããšããæ°ååã®ã€ã³ã¯ååãçŽã®ååãšçžäºäœçšããŠæåãäœããšèããªããã°ãªããªããšããããç§ãã¡ãã©ãçãããæ³åããŠã¿ãŠãã ããã èšãæããã°ãäžå¿
èŠãªè©³çŽ°ã«æéãç¡é§ã«ããããšãªããæ¬è³ªãææ¡ããããšãã§ããŸã-ãäžãããåé¡ãèŠãŠãã ããã
é³¥ç°å³ããªããã°ããã«ã»ããã®ãã¶ã€ã³ãã©ãã»ã©æ£ç¢ºãæ³åã§ããã§ããããïŒ ã¡ãªã¿ã«ãããŒã«ãã³ã䜿çšããäŸã«ã€ããŠã¯ãèªæžãæ©èœããŸãã-æçŽäžã®åãæåã®ã¹ã¿ã€ã«ã¯äžäººã§ãç°ãªã£ãŠããŸãã
æœè±¡çæèã¯ãå€ãã®æ°ããæ
å ±ãåŠçããŠååã§ããã¡ã«ããºã ã§ãã æœè±¡åããªããã°ãç§ãã¡ã«ãšã£ãŠå¯äžã®éžæè¢ã¯ãéåžžã«åå§çãªçãç©ã§ããç¶ããããšã§ãã
ãã©ãžã«ã§ã¯ããã®éšæã¯ã€ã³ãã£ã¢ã³ã®å°ããªéšæ
ãã©ã«äœãã§ããŸãã ãã®åœç±ã®ä»£è¡šè
ã¯ãéåžžã«è²§åŒ±ãªæœè±¡çãªæèãæã£ãŠããŸãã ã¢ã«ãã¡ãããã¯ã3ã€ã®æ¯é³ãš8ã€ã®åé³ã§æ§æãããŠããŸãã æ°åã®ä»£ããã«æ°åãè¡šãèšèããããŸãããæ°åã®ä»£ããã«ãããã€ãã®æŠå¿µããããŸãã 圌ãã«ã¯è²ã¯ãããŸãã-ææã®æŠå¿µãæéãšæŽå²ã ãã§ã-圌ãã¯ä»æ¥ã ãçããŠãããã ããèŠããŠããŸãã æãå€ãçããŠãã人ãèŠããŠããããš; ããã-å®æãå·¥èžãèžè¡ã ç§ãã¡ã®éåžžã®ç解ã«ã¯ããŸã å€ãã®ãã®ããããŸãã ãããŠãããã¯æœè±¡çãªæèãçºéããŠããªãããã§ãã 確ãã«ãå
¬æ£ã«ã¯ã圌ããèªåèªèº«ã絶察ã«å¹žããªäººã ãšæããããšã¯æ³šç®ã«å€ããŸãïŒ
ãã®ããããäºãã®æ
å ±ã亀æããããã«ãç§ãã¡ã®åšãã®äžçãç¥ãã説æããæ¹æ³ãšããŠæœè±¡åãå¿
èŠã§ãã æœè±¡å
ã«ããããµããžã§ã¯ããã¡ã€ã³ãäžé£ã®æŠå¿µãšãããã®éã®é¢ä¿ã«
å解ã§ããŸãã
åçã¯ãã³ãã³ã®ã¬ãŽã©ã³ãã瀺ããŠããŸãã ãã¹ãŠã®ã¢ã€ãã ãåäŸã®ãã¶ã€ããŒããåéãããŠãããšããäºå®ã«ãããããããç§ãã¡ã¯ãããã®äžã«å®¶ãçªããã¢ãéœåžãããã¯ã人ã
ãç°¡åã«èªèããããšãã§ããŸãã
æœè±¡åã®éå£ãšå¯äœçš
æœè±¡åã®éèŠãªç¹æ§ãç解ããããã«ãå¹³é¢ãžã®æ圱ã®æ§ç¯ãšã®é¡äŒŒæ§ãåŒãåºããŸãã
ããŒã«ãåæ±ãç®±ã®3ã€ã®å³åœ¢ããããšããŸããäžæ¹ãåºé¢ã®åã®äžå¿ãéãåæ±ã®å¯Ÿç§°è»žã¯ãç®±ã®å¯Ÿç§°è»žã«å¹³è¡ã§ãã æããã«ãããŒã«ãšåæ±ãå圢ã«æ圱ãããåæ±ãšå¹³è¡å
é¢äœãé·æ¹åœ¢ã«æ圱ãããããã«ãæ圱ãäœæããããã«2ã€ã®å¹³é¢ãéžæã§ããŸãã
ãã®äŸã®æ圱ã¯ããªããžã§ã¯ãã®æœè±¡åãã€ãŸã幟äœåŠçå³åœ¢ã瀺ããŠããŸãã ããå¹³é¢ã§ã¯ãããŒã«ãšåæ±ã®æ圱ãåºå¥ã§ãããä»ã®å¹³é¢ã§ã¯åæ±ãšå¹³è¡å
é¢äœã®æ圱ãåºå¥ã§ããŸããã ãã®å¹æã¯
ãæœè±¡åã®
éå£ãšåŒã°ããŸãã æœè±¡åã¯ãªããžã§ã¯ãå
šäœãè¡šãã®ã§ã¯ãªãããã®æ¬è³ªçãªç¹æ§ã»ããã®ã¿ãè¡šããŸããéåžžã«ç°ãªããªããžã§ã¯ãã®äžã«ã¯ãåºå¥ã§ããªããã®ãããããšã«æ³šæããå¿
èŠããããŸãã ãããäžäŸ¿ãªå Žåã¯ãç°ãªãæœè±¡åã®ã»ãããéžæããå¿
èŠããããŸãã
äžæ¹ããã®äŸãããããããã«ãåæ±ã¯åãšé·æ¹åœ¢ã®äž¡æ¹ã«æ圱ã§ããŸã-åæ±ãšã¯ç°ãªã幟äœåŠçç¹æ§ãæã€ãªããžã§ã¯ãã æœè±¡åããããªããžã§ã¯ãã®ããããã£ãšã¯ç°ãªãç¬èªã®ããããã£ã®æœè±¡åã®ååšã¯ãæœè±¡åã®
å¯äœçšãšåŒã°ããŸãã
æåã®åçã¯ãã¹ã©ã€ããŒããåéããã2ã€ã®å³ã瀺ããŠãããããç¹å®ã®ç
§ææ¡ä»¶äžã§ã人éã®åœ±ããæ圱ããŸãã ããšãã°ã1ã€ã®ã·ã«ãšããã¯ç·æ§ã§ããã1ã€ã®ã·ã«ãšããã¯å¥³æ§ã®ããã§ãã ããã¯ãæœè±¡åã®å¯äœçšã§ããããŸãã ããã§ããã¹ãŠã®åœ¢ç¶ã圱ã§åé¡ã§ããŸãã
æœè±¡åã®äŸ
é©çšç¯å² | æœè±¡å | 解説 |
---|
æŽæ° | ãªã³ã°Zpããã®æ°ãããã§ãp = 2 ^ããã容éïŒ8ã16ã32ã64ãããïŒ | ãã®æœè±¡åã«ãããééâp / 2 + 1ããp / 2ãŸã§ã®æŽæ°ã®ã¿ãè¡šçŸã§ããŸãã å¯äœçšã¯ãªãŒããŒãããŒã®åé¡ã§ãã |
å®æ° | æµ®åå°æ°ç¹æ° | å®æ°ã¯æ°ãããããæµ®åå°æ°ç¹æ°ã¯æéã§ãã ã€ãŸããæ°ãåããªãå®æ°ã¯ãåäžã®æµ®åå°æ°ç¹æ°ã§è¡šãããŸãã å¯äœçšã¯äžžã誀差ã§ããããã¯ãæ¯èŒæŒç®ã䜿çšããŠ2ã€ã®æ°å€ãæ¯èŒããããšã¯ã§ãããå°ããªã€ãã·ãã³| ab | <epsilon => a == bããŸãã¯a / b * 1000ã¯ãa * 1000 / bãšã¯å€§ããç°ãªãå ŽåããããŸãã æ°åŠã«ã¯ãã¹ãŠã®åéãç»å ŽããŠããŸããæ°å€æ³ã¯ãçµæãå®æ°ã®èšç®ãšå€§ããå€ãããªãããã«æµ®åå°æ°ç¹èšç®ãæŽçããæ¹æ³ãç 究ããŠããŸãã |
ãé | æµ®åå°æ°ç¹æ° | æµ®åå°æ°ç¹æ°ã®äžžã誀差ã¯ãããããéèååŒã«äœ¿çšããããšãäžå¯èœã§ã¯ãªãã«ããŠããå°ãªããšã人çã倧ããè€éã«ããŸãã ãããã«ãããç§ã¯æåã«é貚åäœã®å¥ã®ã¯ã©ã¹ãæžãããšãèããŸãã |
ç»å | ãã·ã³ã°ã©ãã£ãã¯ã¹ | ã³ã³ãã¥ãŒã¿ãŒã°ã©ãã£ãã¯ã¹ã¯ãã³ã³ãã¥ãŒã¿ãŒç»é¢äžã®ç»åããããªã¢ã«ã«ããããã«é£èºçã«çºå±ããŠããŸãã |
ãœãããŠã§ã¢ | æç¶ã | ããã·ãŒãžã£ã¯ãæç¶ãåããã°ã©ãã³ã°ã®å解ã®åºæ¬èŠçŽ ã§ãã å¯äœçšãšã¯ãå³å¯ã«å®çŸ©ãããäžé£ã®ã³ãã³ããæã€ããã·ãŒãžã£ã§ãããããã·ãŒãžã£èªäœãæžãæããªãéãå€æŽã§ããŸããã |
ãœãããŠã§ã¢ | ã¯ã©ã¹ | 以äžã§ã¯ã©ã¹ã«ã€ããŠèª¬æããŸãã |
ãµããžã§ã¯ããšãªã¢ | æ¬è³ªã®æœè±¡åãšãšã³ãã£ãã£éã®é¢ä¿ | å¯äœçš-èªèã誀解ãåèŠãªã©ãåæ ç¹å®ã®äž»é¡ã®äž»é¡é åã«ã€ããŠã |
ããžãã¹ããžã㯠| æç¶ã | äžèšã®ããã«ãããã·ãŒãžã£ã®å¯äœçšã¯ã³ãã³ãã®å³æ Œãªã·ãŒã±ã³ã¹ã§ãã éåžžãããžãã¹ããžãã¯ã«ã¯å€ãã®äŸå€ãå«ãŸããŠããããŠãŒã¶ãŒãéåžžã¯èªãã®ãå¿ããŠãããããããžãã¹ããžãã¯ã¯å€æŽãããå¯èœæ§ããããŸãã å€ãã®å Žåãããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³ãããã·ãŒãžã£ãšããŠæ瀺ããããšãããšå€±æããŸãã |
ãœãããŠã§ã¢ | 䞊ååæäœã®ã¹ã¬ãã | ãã«ãã¹ã¬ããããã°ã©ãã³ã°ã¯ç解ããã®ãéåžžã«å°é£ã§ããããšãå€æããã»ãšãã©ã®äººã¯ç解ããŠããŸããã |
æ£æ¹åœ¢ã¯ããã¹ãŠã®èŸºãçããé·æ¹åœ¢ã§ãã | æ£æ¹åœ¢ã¯ã©ã¹ã¯ãé·æ¹åœ¢ããç¶æ¿ã§ããŸããã | ã¯ã©ã¹ã¯æœè±¡åã§ãã ãããã«ã¯ãæ°åŠçãªãªããžã§ã¯ããšã¯ç°ãªããç¶æ¿ãäžå¯èœã«ããç¬èªã®ããããã£ããããŸãã |
ã¯ã©ã¹
Grady Butchã¯ãOOPã次ã®ããã«å®çŸ©ããŠããŸãã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã¯ãããã°ã©ã ããªããžã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³ãšããŠè¡šçŸããããã°ã©ãã³ã°æ¹æ³è«ã§ãããåãªããžã§ã¯ãã¯ç¹å®ã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã§ãããã¯ã©ã¹ã¯ç¶æ¿éå±€ã圢æããŸãããã®å®çŸ©ã§æãéèŠãªç¹ã¯ãç¶æ¿éå±€ã§ãã OOPãä»ã®ãã¹ãŠã®æ¹æ³è«ãšåºå¥ããã®ã¯ç¶æ¿ã§ããããã§ãã
人éã®æèã®2ã€ã®åºæ¬ååã¯ãã°ã«ãŒãåãšäžè¬åã§ãã å®éãã¯ã©ã¹ã¯ã人éã®è³ã®ã°ã«ãŒãåãšäžè¬åã®ã¡ã«ããºã ã®æœè±¡åã§ãã åœç¶ãå¯äœçšãšéå£ããããŸãã åæã«ã1ã€ã®ã¯ã©ã¹ãåæ§ã®ãªããžã§ã¯ããšäžèŽãããããšã§ã°ã«ãŒãåãéæãããã¯ã©ã¹ã®éå±€ã«ããOOPã®äžè¬åãéæãããŸãã ã¯ã©ã¹éå±€ã¯ããªã¢ãŒãã£ãºã ã«ãã£ãŠå®è£
ãããŸãã
ã¡ãªã¿ã«ãOOPã¯ãããããçŸæç¹ã§æåŸã®ããã°ã©ãã³ã°ãã©ãã€ã ã§ãããããŒããŠã§ã¢ã¬ãã«ã§ãµããŒããããŠãããããããã«èå³æ·±ããã®ã§ãã
ã¯ã©ã¹ã®äž»ãªå¯äœçšã¯ãã¯ã©ã¹ãäœæããããã°ã©ããŒã®çµéšãã¹ãã¬ãªã¿ã€ããåèŠãåæ ããããšã§ãã ãã®çµæãåãã¿ã¹ã¯ã«å¯ŸããŠç°ãªã人ãç°ãªãã¯ã©ã¹ã®ã»ãããååŸããããšã«ãªããŸãã ããã«ãåã人ãåãåé¡ã解決ããŸãããç°ãªãæç¹ã§ã圌ã®äººççµéšãå€åããŠãããšããçç±ã ãã§ãç°ãªãã¯ã©ã¹ã®ã»ãããåãåããŸãã
泚ç®ã«å€ãã2çªç®ã®å¯äœçšã¯ãä»äººã®ã³ãŒããåžžã«èªåã®ã³ãŒããããæ確ã§ãªãããšã§ãã
ãããèµ·ããçç±ãç解ããŸãã 人ãã³ãŒããæžããšããäžããäžãžãã€ãŸãäœã¬ãã«ã®ã³ã³ããŒãã³ãããé«ã¬ãã«ã®ã³ã³ããŒãã³ããžãšç§»åããæ¹ãèªç¶ã§ãã æåã«1ã€ã®ã¯ã©ã¹ãäœæãã次ã«2çªç®ã®ã¯ã©ã¹ãäœæãã1çªç®ã®ã¯ã©ã¹ã«äŸåããŸãã
人ãä»ã®äººã®ã³ãŒããç解ããããšãããšãã圌ã¯åã«éæ¹åã«äžããäžã«ç§»åããŸãã ã€ãŸããæåã«äžè¬çãªæ¬è³ªãç解ãã次ã«ãããã³ã³ããŒãã³ãã«å解ããŠãããåã³ã³ããŒãã³ãã®æ¬è³ªãªã©ãç解ããããšããŸãã å€ãã®å Žåãäžããäžãäžããäžãžã®ãããã®æèã®åãã¯ãç°ãªã人ã
ã®éã§äžèŽããŸããã åœç¶ã®ããšãªãããã³ã³ããŒãã³ããžã®ã³ãŒãã®å
èš³ãããããè¡ãæ¹æ³ã«ã€ããŠã®åœŒèªèº«ã®ä¿¡å¿µãšäžèŽããå ŽåãåŠçã¯ä»ã®èª°ãã®ã³ãŒããåŠã¶ã®ãç°¡åã«ãªãã§ãããã ããã§ãªãå Žåã¯ãéçºè
ã®æèã®æµããç解ããã®ã«ããçšåºŠã®åªåãå¿
èŠã§ãã ãããã£ãŠã誰ããããã«ãå®å
šãªããŒãã³ãŒããã§ãããšèšã£ãããæžãçŽãã°ããç°¡åã§ç解ãããããªããŸãã ããã¯åžžã«100ïŒ
çå®ã§ã...ãããã圌ã«ãšã£ãŠã®ã¿ãæ®ãã®éšåã«ãšã£ãŠãæžãæãã®äŸ¡å€ã¯ããã»ã©æçœã§ã¯ãããŸããã
ã¡ãªã¿ã«ãæå³çã«äœãããªããã°ãããã ã¢ããã§éçºããå Žåãã³ãŒãã¯åŒ·ãçžäºæ¥ç¶ãããŸããã€ãŸããåå©çšã§ããŸããã ãã®åœ±é¿ãå
æããã«ã¯ãäŸåé¢ä¿å転ã®ååã«åŸãå¿
èŠããããŸãã
説æããå¯äœçšãã©ã®ããã«çŸããããç°¡åãªäŸã§ç€ºããŸãã 倧éœåžã®å€ãã®å±
äœè
ã¯ã倧ããªã¹ãŒããŒããŒã±ããã§è³Œå
¥ãããŸãã 劻ã倫ãè²·ãç©ã«åºããŠããã€ãã®ããã«ãã¿ã³ã¯ã«ãã人ã®ããã«ããªã¹ããäœæããããšãå¿ããªãããã«ãããšããŸãã
ç§ãã¡ã¯åœŒå¥³ã®æèã®æµãããã©ãããšããŸãã
ãã§ã¯ãä»æ¥ã¯å€é£ã«äœãæçããŸããïŒã
-ããªãã¯åäŸãçãããããã«ãããããã®ã調çããå¿
èŠããããŸãã
-ã ãããå°éºŠç²ãçä¹³ãå¿
èŠã«ãªããŸãã
-ãããµãŒã®ããããªãŒãå°ãªããªã£ãŠããããã§ãã
-ãããŠïŒ åäŸã«ã¯ãã¿ãã³ãå¿
èŠã§ãã ãã³ãžã³ã ã«ããããžã¥ãŒã¹ãäœããŸãã ã¿ããã æ°å¹Žã¯ããããã§ãïŒ
-家ã«ãã³ã¯ãããŸããïŒ ããããããã§ã¯ãªãããã§ãã
-ãŸã ãªã€ã«ã賌å
¥ããå¿
èŠããããŸãã
-èµ€ã¡ããã®ããšãå¿ãã-ãã¿ãã³ã ããããè²·ãã
-ãã³ãããŸãæžããªããã®ã ããããã€ã³ã¯ã¯ããã«ãªããªãã§ãããã 賌å
¥ããå¿
èŠããããŸãïŒ
-ã ãããåäŸã¯ãžã¥ãŒã¹ãè²·ãå¿
èŠããããŸãã
-ãŸããããã¡ã-圌ãåã°ããŠãã ããã
-ãã«ã·ãã«ãžã£ã¬ã€ã¢ã¯ãããŸããïŒ ãã«ã·ãã«ã¯ååã§ããã1é±éã§ã¯ãããŸããã ã ãããããªãã賌å
¥ããå¿
èŠããããŸãã
-å
çãç§ã«2ã€ã®ããŒãããã¯ãæã£ãŠæ¥ãããã«é Œãã ã®ãå¿ããŠããŸããã
-ãã«ã·ãã«ã¯ãµã¯ãŒã¯ãªãŒã ãå¿
èŠã§ãã
-ç ç³ãçµãã£ãããã«ã
-åäŸã¯ãããŠã倧奜ãã§ãã
-ããã§ããããã«å
¥ãã®æ°Žã賌å
¥ããå¿
èŠããããŸãã
ãã®çµæã次ã®ãªã¹ããåŸãããŸãã
- å°éºŠç²
- çä¹³
- é»æ±
- ã«ããã
- ã¿ãã
- ãã³
- æ²¹
- ããã
- ãã³
- ãžã¥ãŒã¹
- ããã¡ã
- ããããã
- ããŒã
- ãµã¯ãŒã¯ãªãŒã
- ç ç³
- ã¶ã©ã
- æ°Ž
倫ãåºã«æ¥ããšãã圌ã¯äœãçºèŠããŸããïŒ ãªã¹ããããŠãã補åã¯ãåºèã®ããŸããŸãªå Žæã«ãããŸãã éåžžããªã¹ãã¯é·ãããããã§ã«è³Œå
¥ãããã®ãæãåºãããšã¯ååã«å°é£ã§ãã ããã«ã¯ãäžéšã®éšéãäžæçã«ééãããŠããããšã課ãããŠããŸããååã¯è·éãããããŠãããäžéšã®ååã¯è²©å£²ãããŠããŸããã ããçµéšè±å¯ãªåå¿ã¯ãéåžžã«å€¢äžã«ãªã£ãè¡šæ
ã®éçãŸãã¯ãã³ã䜿ããåžžã«èªåã®ãªã¹ããèŠãŠãããŸãã ãããããšã«ããã賌å
¥ãããã®ãå¿ããŠãã ããã ç§èªèº«ã®çµéšããèšãã°ããã®ãäœãããæãéèŠã§ãããšèšããã®ã§ãåºã«è¡ã䟡å€ããããŸããã
倫ã«ãšã£ãŠäŸ¿å©ãªãªã¹ãã¯ã©ãã§ããïŒ ãã¹ãŠã®è£œåãéšéããšã«ã°ã«ãŒãåãããŠããå Žåãåã
ã®ã°ã«ãŒãã¯ã¹ãã¢ãã€ãã¹é åºã«å¯Ÿå¿ããé åºã«ãªããŸãã ããšãã°ãç§ãè¡ãåºã§ã¯ãååã次ã®ããã«ã°ã«ãŒãåãããšäŸ¿å©ã§ãã
- é»æ±
- åäŸçšããŒã
- ãã³
- æ°Ž
- ãžã¥ãŒã¹
- ç ç³
- ã«ããã
- ãªã¬ã³ãž
- ããã
- ã¶ã©ã
- ããã
- ãªã€ã«
- ãã³
- çä¹³
- ãµã¯ãŒã¯ãªãŒã
- å°éºŠç²
- åäŸã®ããã¡ã
å¥ã®éèŠãªèŠ³å¯çµæã¯ãæœè±¡åèªäœããã©ãã ãæåããããå€æããããšã¯äžå¯èœã§ãã ããã¯ãå®éã«äœ¿çšããå Žåã«ã®ã¿å®è¡ã§ããŸãã ãããŠãããã€ãã®æœè±¡åã¯ã¿ã¹ã¯ã«é©ããŠããäžæ¹ã§ãä»ã®æœè±¡åã¯æªãããšãããããŸãã ãŸããåææ¡ä»¶ãå°ãå€æŽãããšã以åã®ãé©åãªãæœè±¡åã»ãããæ©èœããªããªãå¯èœæ§ããããŸãã ããšãã°ããã®äŸã®2çªç®ã®è²·ãç©ãªã¹ãã¯ãååã®è¡šç€ºé åºãç°ãªãå¥ã®ã¹ãã¢ã«ç§»åãããšæ©èœããªããªããŸãã 圌ã¯æåãããè¯ããªãããšã¯ãããŸããã
ãããã£ãŠãçµè«-ãã¹ãŠã®æ©äŒã«é©ããã¯ã©ã¹ã®ã»ãããèãåºãããšã¯äžå¯èœã§ãã Open-Closed Principleã®èšäºã§ã¯ããã®æŠç¥çééãåŒãã§ããŸãã
èªç¶ãªåé¡ã¯ãããã«åªããæœè±¡åãäœæããæ¹æ³ã§ãã æ®å¿µãªãããããã«å¯Ÿããæ£ç¢ºãªçãã¯ãããŸããã ããããæéã®çµéãšãšãã«ãäœããã¹ãããäŒããäžé£ã®ãã©ã¯ãã£ã¹ãéçºããããã®ã±ãŒã¹ã§ã¯è¯ãçµæãåŸããããšçŽæãããŠããŸãã ãã®ãããªæ
£è¡ã«ã¯ããªãã¡ã¯ã¿ãªã³ã°ãã³ãŒãã£ã³ã°æšæºãã³ãŒãã¬ãã¥ãŒã
ãªããžã§ã¯ãäœæãªã©ãå«ãŸã
ãŸã ã ãããã®ãã©ã¯ãã£ã¹ã®ç®çã¯ãéçºè
ã°ã«ãŒãã®æèã®æµããäžæ¹åã«åããããšã§ããããããã°ãä»ã®èª°ãã®ã³ãŒããããç解ãããããªãå¯èœæ§ãé«ããªããŸãã åã
ã®å人ã®åãã©ã¯ãã£ã¹ã«å¯Ÿããæ
床ã¯ããã®ãã©ã¯ãã£ã¹ã䜿çšããŠåŸãããçµéšã®ã¿ã«äŸåããŸãã å€ãã®å Žåããããã¯æ©èœããŸããããšããèšèã¯ãè©Šãã-æåããªãã£ãããšè§£éããå¿
èŠããããŸãã å察ãå察ã客芳çãªè°è«ã¯ãããŸããã
ã§ã¯ããªãOOPãå¿
èŠãªã®ã§ããïŒ
èªç¶èšèªãšOOPã®é¡äŒŒç¹ãæããŠã¿ãŸããã
èªç¶èšèª | OOP |
---|
èšè | ã¯ã©ã¹ |
ã«ãŒã« | æ§æ |
ãžã£ã³ã« | å»ºç¯ |
æèž | ãã¿ãŒã³ |
人ã¯èªç¶èšèªã®èšèã§èããè¡šçŸããŸãã ã¿ã¹ã¯ã«ã¯2ã€ã®ã¿ã€ãããããŸãã
- ããã解決ããã«ã¯ãèšèªèªäœãç¥ãå¿
èŠããããŸãã ããšãã°ãæŠäºãšå¹³åãæžãã
- è€éãã¯èšèªã«äŸåããŸããã ã©ãã ãå€ãã®èšèªãç¥ã£ãŠããŠãã ããã¯äœã®å©ãã«ããªããŸããã ããšãã°ããã§ã«ããŒã®å®çã
OOPã¯ã倧èŠæš¡ããã°ã©ã ã察象ã«äœæãããããŒã«ã§ãã ããããããã¯å€§èŠæš¡ãªãããžã§ã¯ããäœæããããã«å¿
èŠãªããŒã«ã®1ã€ã«ãããŸããã
ãªãç§ã¯Xã奜ããªã®ãããªãXã奜ãã§ã¯ãªãã®ããšããã¹ã¿ã€ã«ã®èšäºã«é©ããããŸãã誰ããXãããŒã«ã§ããããšãç解ããŠããŸãã çµå±ã®ãšãããã·ã£ãã«ã«é¢ãããã®ãããªèšäºã¯ãããŸããã çµå±ã®ãšãããOOPã¯æ°å幎ååšããã·ã£ãã«ã¯æ°åã§ãããããããç³åšæ代ã®ã©ããã§ããã³ã¢ã¹ã·ã£ãã«ãŸãã¯ç³ãåªããŠãããšãããããã¯ã«æ®é
·ãªããªããŒãããããšãç¥ã£ãŠããŸããïŒ
é¢é£æç®
1.
Grady Butch C ++ã®ã¢ããªã±ãŒã·ã§ã³ã®äŸã䜿çšãããªããžã§ã¯ãæåã®åæãšèšèšãã®æ¬ã®çŽ¹ä»ã¯äžèŠã§ãã ããã°ã©ãã³ã°ã«é¢ããæãåŒçšãããæ¬ã®1ã€ã
2.
ããŒãã©ãã³ããã³ããã©ãããã®åçããããã³ãŒãŒã®ã³ã³ãµã«ã¿ã³ããšããŠåããŠããããŒãã©ã»ãã³ãã¯ã人ãæ
å ±ãã©ã®ããã«èªèãããã«åºã¥ããŠãåæææžãäœæããç¬èªã®æ¹æ³ãäœæããŸããã æ¬ã§ã¯ãã°ã«ãŒãåãšäžè¬åã®ååã«å€ãã®ã¹ããŒã¹ãäžããããŠããŸãã
3.ãããŒãã»ããŒãã£ã³ïŒããããããïŒ
Robert Martinã¯ãOOPã®ååã«é¢ããäžé£ã®èšäºãšæ¬ãå·çããŠããŸãã ãããã®äžã§æãæåãªã®ã¯
SOLI.Dã§ãã ãããŒãããŒãã£ã³ã©ããããœãããŠã§ã¢éçºã«ãããã·ã¢èªã§åºçãããæ¬
ã ååãäŸããããã®ååãèšè¿°ãããŠãã
å®è·µ ã ããããç§ã®æèŠã§ã¯ã
ãåäžè²¬ä»»ååã ã
ããªãŒãã³ã¯ããŒãºãååã ã
ããªã¹ã³ã眮æååã ã
ãã€ã³ã¿ãŒãã§ãŒã¹åé¢ååã ã
ãäŸåæ§é転ååãã®èšäºã§ãããã«ã€ããŠèªãæ¹ãè¯ãã§ãããã