{"id":290,"date":"2015-08-17T02:43:26","date_gmt":"2015-08-17T02:43:26","guid":{"rendered":"http:\/\/ta.onionmixer.net\/wordpress\/?p=290"},"modified":"2015-08-17T03:21:09","modified_gmt":"2015-08-17T03:21:09","slug":"design-pattern-for-smalltalk-abstract-factory","status":"publish","type":"post","link":"http:\/\/ta.onionmixer.net\/wordpress\/?p=290","title":{"rendered":"Design Pattern for Smalltalk &#8211; Abstract Factory"},"content":{"rendered":"<p><a href=\"http:\/\/ta.onionmixer.net\/wordpress\/?attachment_id=291\" rel=\"attachment wp-att-291\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-291 size-full\" src=\"http:\/\/ta.onionmixer.net\/wordpress\/wp-content\/uploads\/2015\/08\/t_Dpsc_chapter03_AbstractFactory_01.jpg\" alt=\"t_Dpsc_chapter03_AbstractFactory_01\" width=\"800\" height=\"363\" srcset=\"http:\/\/ta.onionmixer.net\/wordpress\/wp-content\/uploads\/2015\/08\/t_Dpsc_chapter03_AbstractFactory_01.jpg 800w, http:\/\/ta.onionmixer.net\/wordpress\/wp-content\/uploads\/2015\/08\/t_Dpsc_chapter03_AbstractFactory_01-480x218.jpg 480w, http:\/\/ta.onionmixer.net\/wordpress\/wp-content\/uploads\/2015\/08\/t_Dpsc_chapter03_AbstractFactory_01-300x136.jpg 300w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>\ucd94\uc0c1\ud329\ud1a0\ub9ac \ud328\ud134\uc758 \ubcf8\uc9c8\uc801 \uc758\ubbf8\ub294 \ud558\uc704\ud074\ub798\uc2a4\uc5d0\uc11c \ud544\uc694\ud55c \uc778\ud130\ud398\uc774\uc2a4\uc758 \ucd94\uc0c1\uc801 \uc120\uc5b8\uc5d0 \uc788\ub2e4.\ucd94\uc0c1\ud074\ub798\uc2a4 \uc790\uccb4\ub294 \ub3d9\uc791\uc5d0 \uc788\uc5b4 \uc5b4\ub5a0\ud55c \uc9c1\uc811\uc801\uc778 \uc758\ubbf8\ub3c4 \uc5c6\uc9c0\ub9cc \uc778\ud130\ud398\uc774\uc2a4\uc758 \uc6d0\ub798 \ud615\ud0dc\uc5d0 \ub300\ud55c \ud2c0\uc744 \uc815\uc758\ud55c\ub2e4\ub294 \uc810\uc774 \ud2b9\uc9d5\uc774\ub2e4.<\/p>\n<p>\ucd94\uc0c1\ud329\ud1a0\ub9ac \ud328\ud134\uc5d0\uc11c \uad6c\ud604\ub418\ub294 \ud558\uc704\ud074\ub798\uc2a4\uc778 \uad6c\uccb4\uc801 \ud074\ub798\uc2a4\ub294, \uc0c1\uc704 \ud074\ub798\uc2a4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub530\ub974\uae30 \ub54c\ubb38\uc5d0 \uad6c\ud604\ub41c \uad6c\uccb4\uc801 \ud558\uc704\ud074\ub798\uc2a4\ub97c \uc9c1\uc811 \uc0ac\uc6a9\ud558\ub294 \ub2e4\ub978 \ucf54\ub4dc \ub0b4\uc5d0\uc11c \uc120\ud0dd\uc81c\uc5b4\ubb38 \ub4f1\uc744 \uc904\uc77c \uc218 \uc788\ub2e4. \ub2e4\ub9cc smalltalk\ub294 \ud0c0\uc785\uc774 \uc758\ubbf8\uac00 \uc5c6\ub294 \uc5b8\uc5b4\uc774\uae30 \ub54c\ubb38\uc5d0 \uc778\ud130\ud398\uc774\uc2a4 \uc124\uacc4\uc5d0\uc11c \ubd80\ub2f4\uc774 \uc801\uc9c0\ub9cc CTT\ub4f1\uc758 \ud0c0\uc785\uc744 \ud544\uc694\ub85c \ud558\ub294 (typed) \uc5b8\uc5b4\uc758 \uacbd\uc6b0\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc880 \ub354 \uc5c4\uaca9\ud558\uac8c \uc124\uacc4\ud574\uc57c \ud560 \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n<p>\ucd94\uc0c1\ud329\ud1a0\ub9ac \ud328\ud134\uc740 \ubb34\uc5b8\uac00 \uacb0\uacfc\ub97c \uc5bb\uc5b4\ub0b4\ub294 \ucf54\ub4dc\uc5d0 \uc788\uc5b4 it\ubb38 \ub4f1\uc758 \ubd88\ud544\uc694\ud55c \uc81c\uc5b4\ubb38\uc758 \uc0ac\uc6a9\uc744 \uc904\uc5ec\uc11c \ud504\ub85c\uadf8\ub7a8\uc758 \ud750\ub984\uc744 \uc880 \ub354 \uac04\uacb0\ud558\uac8c \uc815\ub9ac\ud560 \uc218 \uc788\ub2e4\ub294 \ub370\uc5d0 \uac00\uc7a5 \ud070 \uc758\ubbf8\uac00 \uc788\ub2e4. \ud504\ub85c\uadf8\ub7a8 \ub0b4\uc758 \ud638\uc9c1\uc744 \ubd84\uae30\uc5c6\uc774 \ub2e8\uc21c\ud654\ud558\ub294 \uacfc\uc815\uc740 \uacb0\uacfc\uc801\uc73c\ub85c \uc720\uc9c0\ubcf4\uc218\uae4c\uc9c0\uc758 \uace0\ubbfc\uc73c\ub85c \uc774\uc5b4\uc9c0\uac8c \ub41c\ub2e4.<\/p>\n<p>\ucd94\uc0c1\ud329\ud1a0\ub9ac \ud328\ud134\uc758 \uad6c\ud604\uacfc \uc0ac\uc6a9\uc740 \ud06c\uac8c \uc138\uac00\uc9c0\ub85c \ub098\ub20c \uc218 \uc788\ub2e4.<br \/>\n&#8211; Constant Method \ubc29\ubc95<br \/>\n&#8211; \ubd80\ud488 \uce74\ud0c8\ub85c\uadf8 \ubc29\ubc95<br \/>\n&#8211; \ub2e8\uc77c \ud329\ud1a0\ub9ac \ud074\ub798\uc2a4 \ubc29\ubc95<\/p>\n<p>\uac01 \ubc29\ubc95\uc5d0 \ub300\ud574 \uac04\ub2e8\ud788 \uc54c\uc544\ubcf4\ub3c4\ub85d \ud558\uc790.<\/p>\n<p><strong>Constant Method<\/strong><br \/>\nConstant Method \ubc29\ubc95\uc740 \ucd94\uc0c1\ud074\ub798\uc2a4 (\uc0c1\uc704\ud074\ub798\uc2a4)\uc5d0 \ud558\uc704\ud074\ub798\uc2a4 \ud638\ucd9c\uc2dc \uc0ac\uc6a9 \ub420 \uba54\uc11c\ub4dc\uc758 \uad6c\ud604\uc744 \uacf5\ud1b5\ub41c \ucf54\ub4dc\ub85c \uad6c\ud604\ud558\uace0, \ud558\uc704\ud074\ub798\uc2a4 \uc5d0\uc11c\ub294 \uacf5\ud1b5\ub41c \ucf54\ub4dc\uc5d0\uc11c \ud638\ucd9c\ub418\ub294 \ub0b4\uc6a9\uc744 \uac1c\ubcc4\uc801\uc73c\ub85c \uc9c1\uc811 \uad6c\ud604\ud568\uc73c\ub85c\uc11c \ucd94\uc0c1\uacc4\uce35\uc744 \ud55c\ubc88 \ub354 \ub0b4\ubd80\uc801\uc73c\ub85c \uad6c\ud604\ud574\uc11c \uc720\uc9c0\ubcf4\uc218\ub97c \ud3b8\ud558\uac8c \ud55c\ub2e4\ub294 \ucc28\uc774\uc810\uc774 \uc788\ub2e4. \ub0b4\ubd80\uc801\uc73c\ub85c Public \uba54\uc11c\ub4dc\uac00 Private \uba54\uc11c\ub4dc\ub97c \ub3c4\ucd9c\ud574\uc11c Public \uba54\uc11c\ub4dc\ub97c \ud1b5\ud574 \ubc18\ud658\uac12\uc744 \ucc98\ub9ac\ud558\uac8c \ud558\ub294 \ub17c\ub9ac \uc21c\uc11c\ub97c \uad6c\ud604\ud558\ub294 \ubc29\ubc95\uc774\ub2e4. \uc774 \ubc29\ubc95\uc740 \ubd84\ub958\ubcc4\ub85c \uba54\uc11c\ub4dc\ub97c \ub9cc\ub4e4\uc5b4\uc57c \ud558\uba70, \ubd84\ub958\uac00 \ucd94\uac00\ub418\ub294 \uacbd\uc6b0 \uc0c1\uc704\ud074\ub798\uc2a4 \ubc0f \ud558\uc704\ud074\ub798\uc2a4\uc5d0 \ucd94\uac00\ub418\ub294 \ubd84\ub958\uc5d0 \ub530\ub978 \uba54\uc11c\ub4dc\ub97c \ubaa8\ub450 \uc791\uc5c5\ud574 \uc8fc\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n<p><strong>\ubd80\ud488 \uce74\ub2ec\ub85c\uadf8<\/strong><br \/>\n\ubd80\ud488 \uce74\ub2ec\ub85c\uadf8 \ubc29\ubc95\uc740 \uc0c1\uc704\ud074\ub798\uc2a4 \ubc0f \ud558\uc704\ud074\ub798\uc2a4\uad70\uc5d0 \ubc18\ud658\uac12\uc758 \ubd84\ub958\ubcc4\ub85c \uba54\uc11c\ub4dc\ub97c \uac01\uac01 \ub9cc\ub4dc\ub294 \uac83\uc774 \uc544\ub2c8\ub77c, \ud558\ub098\uc758 \uba54\uc11c\ub4dc\uc640 \uba54\uc11c\ub4dc\uc758 \uc778\uc790\uc5d0 \ub530\ub978 \ubc18\ud658\uac12\uc758 \uc815\ubcf4\ub97c \uac00\uc9c0\uace0 \uc788\ub294 \uce74\ud0c8\ub85c\uadf8\ub97c \uad6c\uccb4\uc801 \ud558\uc704 \ud074\ub798\uc2a4\uc758 \ub0b4\ubd80\uc5d0\uc11c \uac01\uac01 \uc720\uc9c0\ud568\uc73c\ub85c\uc11c \uad6c\uc870\ub97c \ubcf4\ub2e4 \ub2e8\uc21c\ud558\uac8c \ub9cc\ub4e0\ub2e4. \uc774 \ubc29\ubc95\uc740 \ubc18\ud658\uac12 \ubc0f \uc778\uc790\uc758 \ubd84\ub958\uac00 \ucd94\uac00\ub418\uc5b4\ub3c4 \uad6c\uc870\uc758 \ud070 \uc218\uc815 \uc5c6\uc774 \uce74\ub2ec\ub85c\uadf8\uc758 \uac12\ub9cc \uc870\uc815\ud568\uc73c\ub85c\uc11c \ud504\ub85c\uadf8\ub7a8\uc744 \ubcf4\ub2e4 \uc27d\uac8c \ud655\uc7a5\ud560 \uc218 \uc788\ub2e4\ub294 \uc7a5\uc810\uc774 \uc788\ub2e4. factory\ub97c \uc0ac\uc6a9\ud558\ub294 \uc0ac\uc6a9\ud558\ub294 \ucf54\ub4dc\uc5d0\uc11c\ub294 \ub3d9\uc77c\ud55c \uc778\uc790\ub97c \ub123\uc5b4\ub3c4 factory \uac1d\uccb4\uac00 \ucc3d\uc870\ud558\ub294 \uad6c\uccb4\uc801 \ud558\uc704\ud074\ub798\uc2a4\uc5d0 \ub530\ub77c \uac01\uac01 \ub2e4\ub978 \ubc18\ud658\uac12\uc744 \uc5bb\uac8c \ub41c\ub2e4.<\/p>\n<p>Constant method \ubc29\ubc95\uc740 \uc6d0\ud558\ub294 \ubd84\ub958\uc5d0 \ub530\ub77c \uac01\uac01 \ub2e4\ub978 \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\uc9c0\ub9cc \ubd80\ud488 \uce74\ub2ec\ub85c\uadf8 \ubc29\ubc95\uc740 \ub3d9\uc77c \uba54\uc11c\ub4dc\uc5d0 \uc778\uc790\ub9cc \ub2e4\ub974\uac8c \ud558\uba74 \ub41c\ub2e4\ub294 \ucc28\uc774\uc810\uc774 \uc788\ub2e4. \uadf8\ub9ac\uace0 \ucd94\uc0c1 \uc0c1\uc704\ud074\ub798\uc2a4\uc5d0\uc11c \uc778\uc790\uc5d0 \ub530\ub978 \uac12\uc744 \ubc18\ud658\ud558\ub294 \uba54\uc11c\ub4dc\uc758 \ub3d9\uc791\uae4c\uc9c0 \uc120\uc5b8\ud558\uba74 \uad6c\uccb4\uc801 \ud558\uc704\ud074\ub798\uc2a4\uc5d0\ub294 \uac01 \ud074\ub798\uc2a4\uc758 \uce74\ub2ec\ub85c\uadf8 \ub0b4\uc6a9\ub9cc \ubcc4\ub3c4\ub85c \uc720\uc9c0\ud558\uba74 \ub418\ub294 \uad6c\uc870\ub97c \uac00\uc9c0\uac8c \ub41c\ub2e4.<\/p>\n<p><strong>\ub2e8\uc77c \ud329\ud1a0\ub9ac \ud074\ub798\uc2a4 \ubc29\ubc95<\/strong><br \/>\n\ub2e8\uc77c \ud329\ud1a0\ub9ac \ud074\ub798\uc2a4 \ubc29\ubc95\uc740 \ubcc4\ub3c4\uc758 \ud558\uc704\ud074\ub798\uc2a4\ub97c \uc120\uc5b8\ud558\uc9c0 \uc54a\uace0 \ucd94\uc0c1 \ud074\ub798\uc2a4\ub97c \ucde8\uae09\ud558\ub358 \uc0c1\uc704 \ud074\ub798\uc2a4\uc5d0 \uc5f0\uc0b0\uc744 \ud544\uc694\ub85c \ud558\ub294 \uba54\uc11c\ub4dc\uc640 \uc5f0\uc0b0\uc758 \ub300\uc751\uac12\uc744 \uac00\uc9c0\uace0 \uc788\ub294 \uac12\uc758 \uce74\ub2ec\ub85c\uadf8\ub97c \ubaa8\ub450 \ud3ec\ud568\uc2dc\ud0a4\ub294 \ubc29\ubc95\uc774\ub2e4. \ud558\uc704\ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub294\uac83\uc774 \uc544\ub2c8\ub77c \ub2e8\uc77c \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud560 \ub54c \ubcc4\ub3c4\uc758 \uba54\uc11c\ub4dc\ub97c \uc774\uc6a9\ud574\uc11c \uc6d0\ud558\ub294 \uacb0\uacfc \uc9d1\ud569\uc744 \ubc18\ud658\ud558\ub294 \uc778\uc2a4\ud134\uc2a4\ub97c \ubc14\ub85c \uc0dd\uc131\ud574\uc11c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc774 \ub41c\ub2e4. \uc774 \uacbd\uc6b0 factory\ub97c \uc0ac\uc6a9\ud558\ub294 \ucf54\ub4dc\uc5d0 \ubcc0\ud654\ub294 \uc5c6\ub2e4. \ub2e8\uc77c \ud074\ub798\uc2a4\ub294 \ud074\ub798\uc2a4 \uba54\uc11c\ub4dc\ub85c \uc778\uc790\ub97c \ud544\uc694\ub85c \ud558\uc9c0 \uc54a\ub294 \uac01 \uc9d1\ud569\ubcc4 \uba54\uc11c\ub4dc\ub97c \uac00\uc9c0\uac8c \ub41c\ub2e4.<\/p>\n<p>var := factory Class initMethod<\/p>\n<p>\uc704\uc758 \uad6c\ubb38\uc744 \ud1b5\ud574 initMethod \uc5d0 \ud574\ub2f9\ud558\ub294 \uce74\ub2ec\ub85c\uadf8\ub97c \uac00\uc9c0\uace0 \uc788\ub294 var \uac1d\uccb4\ub97c \uac00\uc9c8 \uc218 \uc788\uc73c\uba70 \uc774 \uac1d\uccb4\ub97c \ud1b5\ud574 \uc6d0\ud558\ub294 \uac12\uc744 \uc5bb\uc744 \uc218 \uc788\uac8c \ub41c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ucd94\uc0c1\ud329\ud1a0\ub9ac \ud328\ud134\uc758 \ubcf8\uc9c8\uc801 \uc758\ubbf8\ub294 \ud558\uc704\ud074\ub798\uc2a4\uc5d0\uc11c \ud544\uc694\ud55c \uc778\ud130\ud398\uc774\uc2a4\uc758 \ucd94\uc0c1\uc801 \uc120\uc5b8\uc5d0 \uc788\ub2e4.\ucd94\uc0c1\ud074\ub798\uc2a4 \uc790\uccb4\ub294 \ub3d9\uc791\uc5d0 \uc788\uc5b4 \uc5b4\ub5a0\ud55c \uc9c1\uc811\uc801\uc778 \uc758\ubbf8\ub3c4 \uc5c6\uc9c0\ub9cc \uc778\ud130\ud398\uc774\uc2a4\uc758 \uc6d0\ub798 \ud615\ud0dc\uc5d0 \ub300\ud55c \ud2c0\uc744 \uc815\uc758\ud55c\ub2e4\ub294 \uc810\uc774 \ud2b9\uc9d5\uc774\ub2e4. \ucd94\uc0c1\ud329\ud1a0\ub9ac \ud328\ud134\uc5d0\uc11c \uad6c\ud604\ub418\ub294 \ud558\uc704\ud074\ub798\uc2a4\uc778 \uad6c\uccb4\uc801 \ud074\ub798\uc2a4\ub294, \uc0c1\uc704 \ud074\ub798\uc2a4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub530\ub974\uae30 \ub54c\ubb38\uc5d0 \uad6c\ud604\ub41c \uad6c\uccb4\uc801 \ud558\uc704\ud074\ub798\uc2a4\ub97c \uc9c1\uc811 \uc0ac\uc6a9\ud558\ub294 \ub2e4\ub978 \ucf54\ub4dc \ub0b4\uc5d0\uc11c \uc120\ud0dd\uc81c\uc5b4\ubb38 \ub4f1\uc744 \uc904\uc77c \uc218 \uc788\ub2e4. \ub2e4\ub9cc smalltalk\ub294 \ud0c0\uc785\uc774 \uc758\ubbf8\uac00 \uc5c6\ub294 \uc5b8\uc5b4\uc774\uae30 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74],"tags":[],"_links":{"self":[{"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/290"}],"collection":[{"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=290"}],"version-history":[{"count":3,"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/290\/revisions"}],"predecessor-version":[{"id":294,"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/290\/revisions\/294"}],"wp:attachment":[{"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=290"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ta.onionmixer.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}