iOS/Design Pattern (4) μΈλ€μΌν 리μ€νΈν Design Pattern) ꡬ쑰ν¨ν΄ #1 - Bridge Pattern ꡬ쑰ν¨ν΄μ΄λ ? ν΄λμ€λ κ°μ²΄λ₯Ό μ‘°ν©ν΄ λ ν° κ΅¬μ‘°λ₯Ό λ§λλ ν¨ν΄ μλ₯Ό λ€μ΄ μλ‘ λ€λ₯Έ μΈν°νμ΄μ€λ₯Ό μ§λ 2κ°μ κ°μ²΄λ₯Ό λ¬Άμ΄ λ¨μΌ μΈν°νμ΄μ€λ₯Ό μ 곡νκ±°λ κ°μ²΄λ€μ μλ‘ λ¬Άμ΄ μλ‘μ΄ κΈ°λ₯μ μ 곡νλ ν¨ν΄ ! ꡬ쑰ν¨ν΄ νΉμ§ ! - μλ‘ λ 립μ μΌλ‘ κ°λ°ν ν΄λμ€ λΌμ΄λΈλ¬λ¦¬λ₯Ό λ§μΉ νλμΈ κ²μ²λΌ μ¬μ©ν μ μλ€. - μ¬λ¬ μΈν°νμ΄μ€λ₯Ό ν©μ±νμ¬ μλ‘ λ€λ₯Έ μΈν°νμ΄μ€λ€μ ν΅μΌλ μΆμμ μ 곡νλ€. - μΈν°νμ΄μ€λ ꡬνμ 볡ν©νλ κ²μ΄ μλλΌ κ°μ²΄λ₯Ό ν©μ±νλ λ°©λ²μ μ 곡νλ€. ꡬ쑰ν¨ν΄ μ’ λ₯ Bridge Decorator Facade Flyweight Proxy Composite Adaptor μ€λμ μμ 7κ°μ§ μ€μμ Bridge ν¨ν΄μ λν΄ μμλ³΄κ² μ΅λλ€ ! Bridge Pattern λΈλ¦Ώμ§ ν¨ν΄μ ꡬνλΆμμ μΆμμΈ΅.. Design Pattern ) λμμΈν¨ν΄ κ°μ 2νΈ λμμΈ ν¨ν΄ κ°μ 2νΈμ μ°κ² λ μ΄μ λ λμμΈ ν¨ν΄μ λν ν¬μ€ν μ λͺ κ° λ³΄λ€κ° μ 리νκ³ μΆμ λ΄μ©μ λ°κ²¬νκΈ° λλ¬Έ ! γ [Design-Pattern-In-Swift] 3. λμμΈ ν¨ν΄μ ν΅ν΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ² μ΄λ² 3μ₯μ GoFμ λμμΈ ν¨ν΄ 1.6μ₯ ~ 1.8μ₯μ μ¬κ΅¬μ±ν λ΄μ©μ λλ€! μ΄μ μλ‘ μ 3μ₯μμ λ§λ¬΄λ¦¬νκ³ - λ€μμ₯λΆν°λ μ€μ§μ μΌλ‘ λμμΈν¨ν΄μ μ΄λ»κ² Swiftμ μ μ© ν μ μλμ§μ λν΄ λ€λ€λ³΄λ € i-colours-u.tistory.com μ΄ κΈμ λ°νμΌλ‘ μ 리ν λ΄μ©μ λλ€. λμμΈν¨ν΄ μ€ μμ±ν¨ν΄ λ¨Όμ 곡λΆνκΈ° μν΄ μ°Ύμ보λ€λ³΄λ ν΄λμ€μ κ°μ²΄λ₯Ό λ§λλ κ³Όμ μμΊ‘μννλ€. μ΄λ°μμΌλ‘ λ§μ΄ μκΈ°λ₯Ό νλλΌκ΅¬μ κ·Έλμ ν΄λμ€, κ°μ²΄, μΊ‘μν μ΄λ° κ°λ λ€μ μ§κ³ λμ΄κ°μ’ .. κ³ λ° λλμ .. Design Pattern) μμ±ν¨ν΄ #1 - ν©ν 리 ν¨ν΄ λμμΈν¨ν΄ μ€ μμ±ν¨ν΄μ΄λ κ°μ²΄μ μμ±κ³Όμ μ μ°Έμ¬νλ κ². κ°μ²΄κ° μΈμ€ν΄μ€ν λλ κ³Όμ μ μΆμνν©λλ€. κ°μ²΄κ° ꡬμ±, μμ±λκ³ ννλλ λ°©μμ κ΄κ³μμ΄ μμ€ν μ λ 립μ μΌλ‘ λ§λλλ° λμμ΄ λ©λλ€ ! λ²μλ‘ λΆλ₯ν΄λ³΄μλ©΄, ν¨ν΄μ μ£Όλ‘ ν΄λμ€μ μ μ©νλμ§ κ°μ²΄μ μ μ©νλμ§ κ΅¬λΆν΄λ³Ό μ μλ€. ν΄λμ€ : κ°μ²΄λ₯Ό μμ±νλ μ± μμ μΌλΆλ₯Ό μλΈ ν΄λμ€κ° λ΄λΉνλλ‘ λκΈ°λ κ² => ν©ν 리 λ©μλ ν¨ν΄ κ°μ²΄ : κ°μ²΄λ₯Ό μμ±νλ μ± μμ μΌλΆλ₯Ό λ€λ₯Έ κ°μ²΄μκ² μμνλ κ² => μΆμ ν©ν 리, λΉλ, νλ‘ν νμ , μ±κΈν€ μ€λμ μ΄ μ€μμ ν©ν 리 λ©μλ ν¨ν΄κ³Ό μΆμ ν©ν 리 ν¨ν΄μ λν΄ λ€λ€λ³΄κ² μ΅λλ€ ! π ν©ν 리 ν¨ν΄μ΄λ ? κ°μ²΄ μμ±μ μ λ΄νλ struct/classλ₯Ό λ§λ€μ΄ ꡬ체μ μΈ μμ±κ³Όμ μ κ·Έ μμ ꡬννλ ν¨ν΄ μ μ¬.. Design Pattern ) λμμΈ ν¨ν΄ κ°μ μλ νμΈμ ! μ€λμ λμμΈν¨ν΄μ λν΄μ 곡λΆνλ λ΄μ©μ κΈ°λ‘νκ³ μ ν©λλ€ :) λμ리μμ λμμΈ ν¨ν΄ μ€ν°λλ₯Ό μμνκΈ°λ νκ³ , νμμ μ± μ¬μ 곡λΆνλ κ²μ μ’μν΄μ ν€λνΌμ€νΈ λμμΈν¨ν΄ μ΄λΌλ μ± μ ꡬ맀νκ² λμμ΅λλ€. μ΄ μ± μ λ°νμΌλ‘ μ¬λ¬ λμμΈ ν¨ν΄μ μ 리ν΄λ³΄κ³ , μ± μ λμμλ μμ μ½λλ₯Ό Swiftλ‘ μ§μ λ°κΏλ³΄λ €κ³ ν©λλ€ ! μ€λμ λμμΈ ν¨ν΄μ΄ λμ§, κ·Έλ¦¬κ³ μ μ¬μ©νλμ§, μ’ λ₯μλ μ΄λ€ κ²λ€μ΄ μλμ§ κ°λ¨νκ² μ°Ύμλ³Έ λ΄μ©λ€μ κΈ°λ‘νμμ΅λλ€. λμμΈ ν¨ν΄μ΄λ ? λμμΈ ν¨ν΄μ μννΈμ¨μ΄ μ€κ³μμ 곡ν΅μΌλ‘ λ°μνλ λ¬Έμ μ λν΄ μμ£Ό μ°μ΄λ μ€κ³ λ°©λ²μ μ 리ν ν¨ν΄ ! μ λλ€. λ¬Έμ μν©μ λν μ¬μ¬μ© κ°λ₯ν ν΄κ²°λ°©λ²μΌλ‘μ¨, μΌμ’ μ μμ΄λμ΄λΌκ³ μκ°ν μ μμ κ±° κ°μ΅λλ€ ! μ¦, μ ν¬κ° μν.. μ΄μ 1 λ€μ