{"id":4454,"date":"2023-04-05T23:30:27","date_gmt":"2023-04-05T14:30:27","guid":{"rendered":"https:\/\/8gfg.shop\/blog\/?p=4454"},"modified":"2023-04-29T18:52:31","modified_gmt":"2023-04-29T09:52:31","slug":"adapter-pattern-a-design-pattern-to-overcome-interface-differences-between-incompatible-objects","status":"publish","type":"post","link":"https:\/\/8gfg.shop\/blog\/development\/adapter-pattern-a-design-pattern-to-overcome-interface-differences-between-incompatible-objects","title":{"rendered":"Adapter Pattern: \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\ub4e4 \uac04\uc758 \uc778\ud130\ud398\uc774\uc2a4 \ucc28\uc774\ub97c \uadf9\ubcf5\ud558\uae30 \uc704\ud55c \ub514\uc790\uc778 \ud328\ud134"},"content":{"rendered":"

Adapter \ud328\ud134\uc740 \uac1d\uccb4\ub4e4 \uac04\uc758 \uc778\ud130\ud398\uc774\uc2a4 \ucc28\uc774\ub97c \uadf9\ubcf5\ud558\uae30 \uc704\ud55c \ub514\uc790\uc778 \ud328\ud134\uc785\ub2c8\ub2e4. \uc774 \ud328\ud134\uc740 \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\ub97c \ud568\uaed8 \uc0ac\uc6a9\ud574\uc57c \ud560 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4. Adapter \ud328\ud134\uc740 \uac1d\uccb4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ubcc0\uacbd\ud558\uc5ec \ub2e4\ub978 \uac1d\uccb4\uc640\uc758 \ud638\ud658\uc131\uc744 \ubcf4\uc7a5\ud569\ub2c8\ub2e4. \ub610\ud55c \ucf54\ub4dc\uc758 \uc7ac\uc0ac\uc6a9\uc131\uacfc \uc720\uc9c0 \ubcf4\uc218\uc131\uc744 \ud5a5\uc0c1\uc2dc\ud0b5\ub2c8\ub2e4. \uc774\ubc88 \uae00\uc5d0\uc11c\ub294 Adapter \ud328\ud134\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n

Adapter \ud328\ud134\uc774\ub780?<\/h2>\n

Adapter \ud328\ud134\uc740 \uac1d\uccb4 \uac04\uc758 \uc778\ud130\ud398\uc774\uc2a4 \ucc28\uc774\ub97c \uadf9\ubcf5\ud558\uae30 \uc704\ud55c \ub514\uc790\uc778 \ud328\ud134\uc785\ub2c8\ub2e4. \uc774 \ud328\ud134\uc740 \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\ub97c \ud568\uaed8 \uc0ac\uc6a9\ud574\uc57c \ud560 \ub54c \uc720\uc6a9\ud569\ub2c8\ub2e4. Adapter \ud328\ud134\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4. \uc774\ub807\uac8c \ubcc0\ud658\ub41c \uc778\ud130\ud398\uc774\uc2a4\ub294 \ud638\ud658\uc131 \uc788\ub294 \ub2e4\ub978 \uac1d\uccb4\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\ub4e4 \uac04\uc758 \uc778\ud130\ud398\uc774\uc2a4 \ucc28\uc774<\/h2>\n

\ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\ub4e4 \uac04\uc5d0\ub294 \uc778\ud130\ud398\uc774\uc2a4 \ucc28\uc774\uac00 \uc874\uc7ac\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ud55c \uac1d\uccb4\ub294 \uc0bc\uc131 \uc804\uc790 \uc81c\ud488\uc758 \ub9ac\ubaa8\ucee8 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uace0, \ub2e4\ub978 \uac1d\uccb4\ub294 LG \uc804\uc790 \uc81c\ud488\uc758 \ub9ac\ubaa8\ucee8 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc0c1\ud669\uc5d0\uc11c Adapter \ud328\ud134\uc740 \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4 \uac04\uc758 \uc778\ud130\ud398\uc774\uc2a4 \ucc28\uc774\ub97c \uadf9\ubcf5\ud569\ub2c8\ub2e4.<\/p>\n

Adapter \ud328\ud134\uc758 \uc791\ub3d9 \ubc29\uc2dd<\/h2>\n

Adapter \ud328\ud134\uc758 \uc791\ub3d9 \ubc29\uc2dd\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. \uba3c\uc800, \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\uc758 \uc778\ud130\ud398\uc774\uc2a4\uc640 \ud638\ud658\uc131 \uc788\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\ub97c \uac10\uc2f8\ub294 Adapter \ud074\ub798\uc2a4\ub97c \uc791\uc131\ud569\ub2c8\ub2e4. Adapter \ud074\ub798\uc2a4\ub294 \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud638\ud658\uc131 \uc788\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c, \ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \ud638\ud658\uc131 \uc788\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec Adapter \ud074\ub798\uc2a4\uc640 \ud638\ud658\uc131 \uc788\ub294 \uac1d\uccb4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n

public interface SamsungRemote {\n    void powerOn();\n    void powerOff();\n    void channelUp();\n    void channelDown();\n}\n\npublic interface LGRemote {\n    void turnOn();\n    void turnOff();\n    void up();\n    void down();\n}\n\npublic class LGRemoteAdapter implements SamsungRemote {\n    private LGRemote lgRemote;\n\n    public LGRemoteAdapter(LGRemote lgRemote) {\n        this.lgRemote = lgRemote;\n    }\n\n    public void powerOn() {\n        lgRemote.turnOn();\n    }\n\n    public void powerOff() {\n        lgRemote.turnOff();\n    }\n\n    public void channelUp() {\n        lgRemote.up();\n    }\n\n    public void channelDown() {\n        lgRemote.down();\n    }\n}<\/code><\/pre>\n

\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c LGRemoteAdapter \ud074\ub798\uc2a4\ub294 \ud638\ud658\uc131 \uc5c6\ub294 LGRemote \uac1d\uccb4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud638\ud658\uc131 \uc788\ub294 SamsungRemote \uc778\ud130\ud398\uc774\uc2a4\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4.<\/p>\n

Adapter \ud328\ud134\uc758 \uc0ac\uc6a9 \uc608\uc2dc<\/h2>\n

Adapter \ud328\ud134\uc740 \ub2e4\uc591\ud55c \uc0c1\ud669\uc5d0\uc11c \uc0ac\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ud638\ud658\uc131 \uc5c6\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud574\uc57c \ud560 \ub54c Adapter \ud328\ud134\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \ucf54\ub4dc\uc758 \uc720\uc9c0 \ubcf4\uc218\uc131\uc744 \ud5a5\uc0c1\uc2dc\ud0a4\uae30 \uc704\ud574 Adapter \ud328\ud134\uc744 \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

OUTRO:<\/h3>\n

\uc774\ubc88 \uae00\uc5d0\uc11c\ub294 Adapter \ud328\ud134\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc558\uc2b5\ub2c8\ub2e4. Adapter \ud328\ud134\uc740 \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4 \uac04\uc758 \uc778\ud130\ud398\uc774\uc2a4 \ucc28\uc774\ub97c \uadf9\ubcf5\ud558\uc5ec \uac1d\uccb4\ub4e4\uc744 \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uc774 \ud328\ud134\uc740 \ucf54\ub4dc\uc758 \uc7ac\uc0ac\uc6a9\uc131\uacfc \uc720\uc9c0 \ubcf4\uc218\uc131\uc744 \ud5a5\uc0c1\uc2dc\ud0a4\ub294\ub370 \ud070 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. Adapter \ud328\ud134\uc740 \ub2e4\uc591\ud55c \uc0c1\ud669\uc5d0\uc11c \uc0ac\uc6a9\ub420 \uc218 \uc788\uc73c\uba70, \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\uc758 \uc720\uc5f0\uc131\uacfc \ud655\uc7a5\uc131\uc744 \ub192\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"

\uc5b4\ub5bb\uac8c \ud638\ud658\uc131 \uc5c6\ub294 \uac1d\uccb4\ub4e4 \uac04\uc758 \uc778\ud130\ud398\uc774\uc2a4 \ucc28\uc774\ub97c \uadf9\ubcf5\ud560 \uc218 \uc788\uc744\uae4c\uc694? Adapter \ud328\ud134\uc744 \uc0ac\uc6a9\ud574\ubcf4\uc138\uc694!<\/p>\n","protected":false},"author":1,"featured_media":12633,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[2735,2015,2523,3066,3087,3068],"class_list":["post-4454","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-adapter","tag-development","tag-pattern","tag-3066","tag-3087","tag-3068"],"acf":[],"_links":{"self":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/4454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/comments?post=4454"}],"version-history":[{"count":0,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/4454\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/media\/12633"}],"wp:attachment":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/media?parent=4454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/categories?post=4454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/tags?post=4454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}