1999/09/03 æ´æ° ç³äº å ãã¦ï¼ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã¶ã¤ã³ãã¿ã¼ã³ãçµ±ä¸çã«ç解ããããã«ï¼ã Open-Closed Principle (OCP) ã ã¨ããè¨è¨ã«ã¼ã«ã«åºã¥ãã¦ãã¿ã¼ã³ãçºãã¦ã¿ããã¨ã«ãã¾ãï¼ã¾ã OCP ã®æå³ã¨è§£èª¬ãè¡ãï¼ãã®å¾ãã¶ã¤ã³ãã¿ã¼ã³ã OCP ã®è¦³ç¹ããè¦ã¦ã¿ã¾ãï¼å®ã¯ï¼ãã¶ã¤ã³ãã¿ã¼ã³ã®ãã¡ã®å¤ã㯠OCP ãæºããããã«ç¨æããããã®ã¨èãããã¨ãã§ããã®ã§ãï¼ãã®ã»ã¯ã·ã§ã³ã§ã¯ï¼ OCP ãç解ãï¼æ°ãããã¶ã¤ã³ãã¿ã¼ã³ã®ä¸ããã©ãããå ´åã«ã©ã®ãã¿ã¼ã³ã使ãã®ãä¸çªå¹æçãªã®ããèãã¾ãï¼ GoF ã®ãã¶ã¤ã³ãã¿ã¼ã³ã¯ï¼å ¨é¨ã§ 23 åãã®ãã¿ã¼ã³ãããã¾ãï¼ãã®ãã¶ã¤ã³ãã¿ã¼ã³ã¯ï¼å¤ãã®å±é¢ã§ç¹°ãè¿ãç¾ããè¨è¨ãæ½åºãããã®ã§ãããï¼ãªãã¸ã§ã¯ãæåã®ã¨ãã»ã³ã¹ãéãããã®ã ã¨è¨ããã§ãããï¼ãªãã¸ã§ã¯ãæåã«ã¯ï¼ã«ãã»ã«åï¼ç¶
PofEAAã®Wikiã§ããMartin Fowleræ°ã¨Addison-Wesley Pub Coã®è¨±å¯ãå¾ã¦ã ãã¿ã¼ã³ã«ã¿ãã°ã®ç¿»è¨³ãè¡ã£ã¦ãã¾ããbliki_jaã¨åããã©ãªãã§ãåå å¯è½ã§ãã®ã§ãæ¯éåå ãã¦ã¿ã¦ãã ãã ;-) â»ãã®ãµã¤ãã¯æ¸ç±ã®é¦è¨³ã¨ã¯ä¸åé¢ä¿ããã¾ããã â PofEAAã®ãã¿ã¼ã³ã«ã¿ãã° and PofEAAã®ãã¿ã¼ã³ã«ã¿ãã°(é¦è¨³ç)ããããèªã¿å§ããã¨ããã§ãããã対å¿è¡¨ãããã¾ãã â èªæ¸ä¼ 第12åã®éå¬äºå®ã¯æªå®ã§ãã â PofEAAèªæ¸ä¼ã¡ã¼ãªã³ã°ãªã¹ãèªæ¸ä¼ã«é¢ãã話é¡ãæ±ã£ã¦ãã¾ãããèªè ä¼ã¸ã®åå ãå¼·å¶ãããã®ã§ã¯ããã¾ãããèå³ã®ããæ¹ã®åå ã¯éæåãä»ãã¦ãã¾ãã
ã¤ã³ãããã¯ã·ã§ã³ ã¿ãªããã®ãµã¼ãã¬ããï¼Strutsã使ç¨ãã¦ããå ´åã¯ã¢ã¯ã·ã§ã³ã¯ã©ã¹ï¼ã®è¡æ°ã¯ãå¹³åã©ããããã§ããããï¼ ãã¼ã¿ãã¼ã¹ã¢ã¯ã»ã¹ãæ¥åå¦çãªã©ããã¹ã¦ã®å¦çããµã¼ãã¬ããã«è©°ãè¾¼ããã¨ãã¦ããã£ã¨ããéã«1000è¡ãè¶ããããªã太ã£ããµã¼ãã¬ããããä½ã£ã¦ãã¾ã£ããã¨ããã¾ãããï¼ ãµã¼ãã¬ãããåãã¦æ¸ããã¨ãã¯çè ãããã§ããã ãã®ãããªãé·ããããã¹ã¦ã®å¦çãå ¥ã£ãããµã¼ãã¬ããã®ãã¨ããã¹ã¦ã®ãã¨ãè¡ãéæ³ã®ãããªãµã¼ãã¬ããã¨ãããã¨ã§ããã¸ãã¯ãµã¼ãã¬ãããã¨å¼ã³ã¾ãã ãã¸ãã¯ãµã¼ãã¬ããã¯ä¿å®ãæ©è½æ¡å¼µãé£ããã®ã¯ãã¡ããã®ãã¨ããã¢ããªã±ã¼ã·ã§ã³ãæä¾ããæ©è½ããææ¡ãããã¨ãé£ãããªãã¨ããå¼å®³ãããã¾ãã æ©è½ãææ¡ã§ããªãã¨ããã®æ©è½ã£ã¦ã©ãã«ãã£ãã£ãï¼ãã¨ããç¶æ³ãçã¿åºããã¡ã«ãªãã¾ãã ãã®ãããªç¶æ³ãé¿ããããã«ããããµã¼ãã¹ãæ
AWSã¯ã©ã¦ããã¶ã¤ã³ãã¿ã¼ã³ã¨ã¯ï¼ AWSã¯ã©ã¦ããã¶ã¤ã³ãã¿ã¼ã³ (AWS Cloud Design Pattern, ç¥ãã¦CDPã¨å¼ã¶)ã¨ã¯ãAWSã¯ã©ã¦ãã使ã£ãã·ã¹ãã ã¢ã¼ããã¯ãã£è¨è¨ãè¡ãéã«çºçãããå ¸åçãªåé¡ã¨ããã«å¯¾ãã解決çã»è¨è¨æ¹æ³ããåãããããåé¡ãã¦ããã¦ãã¦ã¨ãã¦å©ç¨ã§ããããã«æ´çãããã®ã§ããã ããã¾ã§å¤ãã®ã¯ã©ã¦ãã¢ã¼ããã¯ãéãçºè¦ãã¦ããããããã¯ç·¨ã¿åºãããè¨è¨ã»éç¨ã®ãã¦ãã¦ã®ãã¡ãã¯ã©ã¦ãä¸ã§å©ç¨ãå¯è½ãªãã®ãã¯ã©ã¦ããã¶ã¤ã³ã®ãã¿ã¼ã³ã¨ããå½¢å¼ã§ä¸è¦§åããæé»ç¥ããå½¢å¼ç¥ã«å¤æãããã®ã§ããã¨ãããã ãã¿ã¼ã³ã®ä¸ã«ã¯ãã¯ã©ã¦ãã§ãªãã¦ãå®ç¾ã§ãããã®ãä»ã¾ã§ã§ãå®ç¾ããã¦ãããã®ãå«ã¾ãã¦ããããã¯ã©ã¦ãä¸ã§ãä»ã¾ã§éãã®ã¢ã¼ããã¯ãã£ãå®ç¾ã§ãããã¤ã¯ã©ã¦ããå©ç¨ããäºã§ãããå®ä¾¡ã«ããã¦ãã容æã«å®ç¾ã§ãããã®ã¯ãCDPã¨ãã¦å
åæ ç¶æ¿ãç¨ãã¦ã親ã¯ã©ã¹ã®æ©è½ãåã¯ã©ã¹ãæ¡å¼µãããã¨ã«ããæ¡å¼µããéçãªæ¡å¼µããå®è¡æã« new ãªã©ã«ãã£ã¦ä½ãããã¤ã³ã¹ã¿ã³ã¹ãåãåããã®ã¤ã³ã¹ã¿ã³ã¹ã使ã£ã¦æ©è½æ¡å¼µããæ¡å¼µããåçãªæ¡å¼µãã¨å¼ã¶ã éçï¼ class 親{ do{} } class å extends 親 { do{ //åå¦ç; super.do(); //å¾å¦ç; } } åçï¼ class å { do{} } class æ¡å¼µ{ ã³ã³ã¹ãã©ã¯ã¿{ moto = å¼æ°ã«ããã£ãå ; } do{ //åå¦ç; moto.do(); //å¾å¦ç; } } class Main{ main{ sugoi_moto = new æ¡å¼µ( new å () ); } } åèï¼ PHPã«ãããã¶ã¤ã³ãã¿ã¼ã³å ¥é ä½è : ä¸å²¡ç§å¹¸,é端è¯,çåä¹åºç社/ã¡ã¼ã«ã¼: ç§åã·ã¹ãã çºå£²æ¥: 2006/11/27ã¡ãã£ã¢: å
ããã¯ãRubyã«ãããã¶ã¤ã³ãã¿ã¼ã³ãï¼ã©ã¹ã»ãªã«ã»ã³èããã¢ã½ã³ã»ã¨ãã¥ã±ã¼ã·ã§ã³åï¼ãPythonã«ç¿»è¨³ãã¦ã¿ããã¨ããã·ãªã¼ãºã§ãã Rubyã«ãããã¶ã¤ã³ãã¿ã¼ã³ ä½è : Russ Olsen,ã©ã¹ã»ãªã«ã»ã³,å°æå¥ä¸,è éè£,åéé 人,山岸夢人,å°å³¶åªåºç社/ã¡ã¼ã«ã¼: ãã¢ã½ã³æ¡åçºå£²æ¥: 2009/04/01ã¡ãã£ã¢: åè¡æ¬è³¼å ¥: 13人 ã¯ãªãã¯: 220åãã®ååãå«ãããã° (66件) ãè¦ã ãã¶ã¤ã³ãã¿ã¼ã³ã®ååãã å¤ãããã®ãå¤ãããªããã®ããåé¢ãã ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«å¯¾ãã¦ããã°ã©ã ããå®è£ ã«å¯¾ãã¦è¡ããªã ç¶æ¿ããéç´ å§è²ãå§è²ãå§è² å¿ è¦ã«ãªãã¾ã§ä½ããªï¼ããã¯ãRubyã«ããããã®çè ã«ããï¼ è¨äº Template Methodãã¿ã¼ã³ Strategyãã¿ã¼ã³ Observerãã¿ã¼ã³ Compositeãã¿ã¼ã³ Iteratorãã¿ã¼ã³ C
ã½ããã¦ã§ã¢éçºã«ããããã¶ã¤ã³ãã¿ã¼ã³ã¾ãã¯è¨è¨ãã¿ã¼ã³ï¼è±: design patternï¼ã¨ã¯ãéå»ã®ã½ããã¦ã§ã¢è¨è¨è ãçºè¦ãç·¨ã¿åºããè¨è¨ãã¦ãã¦ãèç©ããååãã¤ããåå©ç¨ããããããã«ç¹å®ã®è¦ç´ã«å¾ã£ã¦ã«ã¿ãã°åãããã®ã§ããããã¿ã¼ã³ï¼patternï¼ã¨ã¯ãåç´ï¼ãããã¿ï¼ãã²ãªå½¢ãæå³ããã æ¬ç¨¿ã§ã®ãã¶ã¤ã³ã¯ç義ã®è¨è¨ã¨ããæå³ã§ãããCSSãHTMLãªã©ã§ä½¿ãããæå ãã¶ã¤ã³ã®å®å½¢ã示ãããã¶ã¤ã³ãã¿ã¼ã³ãã¨ã¯ç°ãªãã æ¸ç±ããªãã¸ã§ã¯ãæåã«ãããåå©ç¨ã®ããã®ãã¶ã¤ã³ãã¿ã¼ã³ãã«ããã¦ãGoF (Gang of Four) ã¨å¼ã°ãã4人ã®å ±èè ã¯ããã¶ã¤ã³ãã¿ã¼ã³ã¨ããç¨èªãåãã¦ã½ããã¦ã§ã¢éçºã«å°å ¥ãããGoFã¯ãã¨ã¼ãªãã»ã¬ã³ãããªãã£ã¼ãã»ãã«ã ãã©ã«ãã»ã¸ã§ã³ã½ã³ãã¸ã§ã³ã»ããªã·ãã£ã¼ã¹ã®4人ã§ãããå½¼ãã¯ããã®æ¸ç±ã®ä¸ã§23種é¡ã®ãã¿ã¼ã³ãåãä¸ãã
ãªãã¸ã§ã¯ãæåããã°ã©ãã³ã°ã«ããã¦ãã¶ã¤ã³ãã¿ã¼ã³ãå©ç¨ãããã¨ã¯ãéçºè ã«æ§ã ãªã¡ãªãããä¸ãã¦ããã¾ãã ããã§ã¯ãããã¶ã¤ã³ãã¿ã¼ã³ã¨ã¯ä½ããã¨ãããããªãã¶ã¤ã³ãã¿ã¼ã³ã®åºæ¬äºé ã¨ãGoFã®23åã®ãã¶ã¤ã³ãã¿ã¼ã³ãJavaãå©ç¨ãã¦ãããããã解説ãã¾ãã ãã¶ã¤ã³ãã¿ã¼ã³ INDEX
ã©ã³ãã³ã°
ãç¥ãã
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}