μΆμ ν©ν 리 ν¨ν΄μ μμ± ν¨ν΄μ ν μ’ λ₯λ‘ κ°μ²΄μ μ§ν©μ μμ±ν λ μ 리ν ν¨ν΄μ λλ€. μΆμ ν©ν 리 ν¨ν΄μ μμμ μκ°ν ν©ν 리 λ©μλ ν¨ν΄νκ³ λ λ€λ₯Ό ν¨ν΄μ λλ€. μΆμ ν©ν 리 ν¨ν΄μ κΈ°μ‘΄ ν©ν 리 ν¨ν΄μμ νλ² λ μΆμνμμΌμ μλ‘ κ΄λ ¨μ΄ μλ μ νμ μμ±νκ² ν΄ μ€λλ€. μ¦ κ΅¬μ ν΄λμ€λ€μ μ§μ νμ§ μκ³ λ κ°μ²΄μ λͺ¨μμ μμ±ν μ μμ΅λλ€.
μ΄λ¬ν κ°μ²΄λ€μ νλ‘κ·Έλ¨ λ΄μμ λͺ¨λ UIλ₯Ό κ°μ λ€λ₯Έ κ°μ²΄λ‘ λ§λ€κ² λλ©΄ λμ€μ μμ μ΄ μ΄λ €μΈ μ μκΈ° λλ¬Έμ μ΄λ¬ν κ°μ²΄λ€μ νννλ νλμ μΆμ ν΄λμ€λ₯Ό μ μνμ¬ μ΄λ₯Ό ν΄κ²°νκΈ° μν λ°©λ²μΌλ‘ λ§λ€μ΄μ‘μ΅λλ€.
μμ±μ μ± μμ§λ ꡬ체μ μΈ ν΄λμ€λ₯Ό λΆλ¦¬μν€κ³ μΆμ λ μ¬μ©ν©λλ€ μ΄λ¦μ μΆμμ΄ λ€μ΄κ°λ€λ κ²μ μΊ‘μννλ€λΌκ³ μκ°νμλ©΄ λ©λλ€. κ·Έ λ»μ μΈμ€ν΄μ€λ₯Ό μΆμννλ κ²μ λλ€. μ΄λ¬λ©΄ μμμ λ§ν μμ±μ κ΄ν ꡬ체μ μΈ λ΄μ©μ΄ μ¬μ©μμ λΆλ¦¬λ©λλ€. μ£Όλ‘ μ¬μ©νλ κ²½μ°λ μ¬λ¬ μ νμ μ νμ ν΅νμ¬ μμ€ν μ ꡬμ±νκ³ μ νκ΅°μ λμ²νκ³ μΆμ λμ λλ€. μΆμ ν©ν 리λ νμν λͺ¨λ κ²μ μμ±νκΈ° λλ¬Έμ μ 체 μ νκ΅°μ ν λ²μ λ³κ²½μ΄ κ°λ₯ν©λλ€.
ν©ν 리 λμ μΆμν ν©ν 리λ₯Ό μ¬μ©νλ κ²½μ°λ?
- μ νκ΅°μ€ νλλ₯Ό μ νν΄μ μμ€ν μ μ€μ ν΄μΌ νκ³ κ΅¬μ±ν μ νκ΅°μ λ€λ₯Έ κ²μΌλ‘ λ체ν μ μμ λ
- μ°κ΄λ λ€μμ μΈμ€ν΄μ€κ° ν¨κ» μ€κ³λκ±°λ μΈλΆλ‘λΆν° 무μΈκ°λ₯Ό μ μ½νκ³ μΆμ κ²½μ°
μ‘°κΈ μ½κ² μ€λͺ νλ©΄ μ°κ΄μ΄ μλ κ°μ²΄λ₯Ό λ¬Άμ΄μ μμ±νλ κ²½μ°μ μΆμν ν©ν 리 ν¨ν΄μ΄ ν©ν 리 λ©μλ ν¨ν΄μ λΉν΄μ μ 리ν©λλ€. (νμ§λ§ μ λ μΈμ€ν΄μ€λ₯Ό κ΅³μ΄ μ¨κΈΈ νμ μλ μ½λμλ μ‘°κΈ λ κ°λ¨ν ν©ν 리 λ©μλ ν¨ν΄μ μ¬μ©νλ κ²μ΄ μ’λ€κ³ μκ°ν©λλ€.)
[##Image|kage@cyswJC/btr0JNtWXGQ/glomoVLfSQAzdTf9aNSKLk/img.gif|CDM|1.3|{"originWidth":3024,"originHeight":4032,"style":"alignCenter","width":400,"height":533,"filename":"tempImageuUNPV1.gif"}##]
Avstract Factory = AvstractFactoryMethod(맨 μμ μλ κ²) = Facroty μΆμν νμ
Concrete Factory = iPhoneFactory, iPadFactory = κ° μ°κ΄μ΄ μλ μΈμ€ν΄μ€ μ§ν©μ μμ±ν Factory νμ
Abstract Product = CButton, CLabel = μμ±λ¨ μΈμ€ν΄μ€λ₯Ό μΆμνν νμ
Concrete Product = iPhoneButton, iPadLabel, iPadButton, iPhoneLabel = μ΅μ’ μ μΌλ‘ μμ±λλ ꡬ체μ μΈ νμ
- ν©ν 리μμ μμ±λλ μ νμ μνΈ νΈνμ 보μ₯ν μ μλ€.
- λ¨μΌ μ± μ μμΉμ΄κΈ° λλ¬Έμ μ½λλ₯Ό μ½κ² μ μ§λ³΄μ ν μ μμ΅λλ€
- λλ¨Έμ§λ ν©ν 리 λ©μλμ λμΌν μ₯μ μ λλ€
- λ¨μ μμ ν©ν 리 λ©μλμ λμΌν λ¨μ μ λλ€
Abstract Factory Method Pattern μμ μ½λ
μ€λμ μ½κ² νΈλ κ²μ΄ λ무 μ΄λ €μ μ΅λλ€... κ·Έλμ μ€λͺ λ λ―Έν νκ³ κ·Έλλ§ μ½λλ₯Ό 보μλ©΄ μ΄ν΄λ λμ€ ν λ° μλ£λ ν΄μΈλ₯Ό μμ£Όλ‘ λ΄μμ... μ€λμ λΈλ‘κ·Έλ μ‘°κΈ ννλ§ λ¨μ΅λλ€. λΉ λ₯Έ μμΌ λ΄μ μμ ν΄μ μ‘°κΈμ΄λΌλ λ λμμ΄ λλ λΈλ‘κ·Έκ° λλλ‘ λ Έλ ₯νκ² μ΅λλ€.