-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
ππ»ββοΈΒ 10-2 : Protocol Oriented Programmingκ³Ό Object Oriented Programmingμ μ°¨μ΄μ μ μ€λͺ νμμ€.
- Object Oriented Programming(OOP, κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°)μΒ
ν΄λμ€λ₯Ό μ€μ¬μΌλ‘ μ€κ³λλ©°,
μμ(Inheritance)μ νμ©νμ¬ μ½λλ₯Ό μ¬μ¬μ©νκ³ νμ₯ν μ μμ΅λλ€.
ν΄λμ€ κΈ°λ° μ€κ³μμλ λΆλͺ¨ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό μμ ν΄λμ€κ° μμλ°μ νμ₯ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄,ΒAnimalΒ ν΄λμ€λ₯Ό μμλ°λΒDog,ΒCatΒ ν΄λμ€κ° κ°κ°μ νΉμ±μ μΆκ°νλ λ°©μμ λλ€. - Protocol Oriented Programming(POP, νλ‘ν μ½ μ§ν₯ νλ‘κ·Έλλ°)μΒ
νλ‘ν μ½(Protocol)μ μ€μ¬μΌλ‘ μ€κ³λλ©°,
ꡬ쑰체(Struct)μ νλ‘ν μ½ νμ₯(Protocol Extension)μ μ κ·Ήμ μΌλ‘ νμ©νμ¬ μ½λλ₯Ό νμ₯ν μ μμ΅λλ€.
Swiftλ ꡬ쑰체μ νλ‘ν μ½ νμ₯μ ν΅ν΄ λ€μ€ μμμ λ¬Έμ λ₯Ό ν΄κ²°νκ³ , νμ μ λ μ μ°νκ² μ€κ³ν μ μλλ‘ λμ΅λλ€. - OOPμμλΒ ν΄λμ€ κ³μΈ΅ ꡬ쑰λ₯Ό μ€κ³ν΄μΌ νμ§λ§,
POPμμλΒ μ¬λ¬ κ°μ νλ‘ν μ½μ μ‘°ν©νμ¬ κΈ°λ₯μ νμ₯ν μ μμ΅λλ€.
μ΄λ‘ μΈν΄Β λ μ μ°νκ³ , λ¨μΌ μμμ νκ³λ₯Ό 극볡ν μ€κ³κ° κ°λ₯ν©λλ€. - Swiftλ νλ‘ν μ½ μ§ν₯ μΈμ΄λ‘ μ€κ³λμμΌλ©°,
κΈ°λ³Έ νμ μΈΒInt,ΒString,ΒArrayΒ λ±λ ꡬ쑰체(Struct)λ‘ κ΅¬νλμ΄ μμ΅λλ€.
μ¦,Β ν΄λμ€κ° μλ ꡬ쑰체λ₯Ό κΈ°λ°μΌλ‘ νλ‘ν μ½μ νμ©νμ¬ κΈ°λ₯μ νμ₯νλ κ²μ΄ Swiftμ μ² νμ λλ€. - OOPμ λ¨μ Β μ€ νλλΒ ν΄λμ€ κ³μΈ΅ κ΅¬μ‘°κ° κΉμ΄μ§λ©΄ μ μ§λ³΄μκ° μ΄λ €μμ§λ€λ μ μ
λλ€.
POPμ νμ©νλ©΄Β λ€μ€ νλ‘ν μ½μ μ‘°ν©νμ¬ μ½λμ κ°λ μ±κ³Ό μ¬μ¬μ©μ±μ λμΌ μ μμΌλ©°,
ꡬ쑰체λ₯Ό μ¬μ©νμ¬ κ° νμ (Value Type)μ μ₯μ λ μ΄λ¦΄ μ μμ΅λλ€..
Metadata
Metadata
Assignees
Labels
No labels