A, BλΌλ ν¨μλ€μ κ°μ§ ν΄λμ€1
C, DλΌλ ν¨μλ€μ κ°μ§ ν΄λμ€2
E, F, GλΌλ ν¨μλ€μ κ°μ§ ν΄λμ€3
κ³μ...
μ΄λ κ² μμ²λκ² λ§μ λ€μν ν΄λμ€λ€μ΄ μλλ° μ΄ ν΄λμ€λ€μ λ³μ νλλ‘, κ·Έλ¬λκΉ
λ³μW
κ° μλ€λ©΄
λ³μW = new ν΄λμ€1
ν΄μ
λ³μW.B()
λ‘ B ν¨μμ μ κ·Όνκ±°λ
λ³μW = new ν΄λμ€3
λ³μW.E()
λ³μW.G()
λ‘ E, G ν¨μλ€μ μ κ·Όνκ±°λ...
μ΄λ° λ°©λ²μ C#(μ λν°)μΌλ‘ μ΄λ»κ² ꡬνν΄μΌ νλμ§ μμλλΆ μλμ??
μ΄κ²λ κ°μ리μμ€
μλλ€ κ΅³μ΄ μ λ‘·κ² ν νμμμ? - dc App
λͺΉ νλ ν¨μλ₯Ό μ 리νλ €κ³ νλλ° κ·Έκ±Έ λ³μ νλλ‘ μ 리νκ³ μΆμ΄μμ
μλ₯Όλ€μ΄ 'νμ¬λͺΉνλ' λ³μ νλμ 'κ³ λΈλ¦°λ©μ΄μ§' ν΄λμ€λ₯Ό λΆλ¬μ€λ©΄ 'νμ¬λͺΉνλ' ν¨μ νλλ§ μ¨λ κ³ λΈλ¦°λ©μ΄μ§ ν΄λμ€ μμ ν¨μλ₯Ό μ λΆ μ κ·Όν μ μκ²μ
μλλ©΄ λ€λ₯Έ μ’μ λ°©λ²μ΄ μλμ? μ κ° μ λͺ°λΌμ...
λ±κ·Έκ±°λ€ μμ
κ°μν¨μ
http://smilejsu.tistory.com/520
μ κΈμ΄μ΄ μλλ μμμ΄ λ§κ² λ€..
μμ λ§ν¬ κ°μν¨μλ μ€λ²λΌμ΄λ© κ°λ μ΄μ κΆκΈνλ©΄ ꡬκΈμ λ γ±γ±
κ·Έλ°λ° μμμ μ°λ €λ©΄ μμνλ ν΄λμ€μλ μμλ°λ ν΄λμ€μ λͺ¨λ ν¨μκ° λ€ λ€μ΄κ° μμ΄μΌ νμ§ μλμ? λ§μ½ μμλ°λ ν΄λμ€κ° μμ²λκ² λ€μνκ³ λ§λ€λ©΄ μμνλ ν΄λμ€κ° μμ²λκ² λ³΅μ‘νκ³ κΈΈμ΄μ§ν λ°...
λ€μ€μμκΉμ§
μ μκ°μ λͺ¨λ ν¨μλ₯Ό λ€ λ£κΈ°λ³΄λ€λ 곡ν΅μ μΈ μμλ§ μμνλ ν΄λμ€μ λ£κ³ μμλ°λ ν΄λμ€μμλ§ νμν ν¨μλ€μ μκ°ν΄μ£Όλ©΄ κ·Έλ κ² λ³΅μ‘νμ§μμκ±°κ°μλ°
κ·ΈλΌ κ·Έκ² κ°μ₯ λμ λ°©λ²μΈκ° 보λ€μ... μμμ΄λ μ€λ²λΌμ΄λ ν΄μ μ¨μΌκ² μ΅λλ€. λ΅λ³ν΄μ£Όμ μ κ°μ¬ν©λλ€.
κ²½νμ λ§μλ리λλ° μμμ κ·Έλ°μμΌλ‘ μ°λ©΄ 골μΉμνμ§λλΉ λ§λ€λ€ 보면 λͺ μΈκ° κ³μ μΆκ°λ¨μΌλ‘ μΈν΄μ μμΉ λ²λΈ-μ νμμ΄ λ°μνλλ° μ€κ³ λ§νλ€κ³ κΉ¨λ«λ건 μ΄λ―Έ κ°νμ΄ λ μ΄νμ
μ»΄ν¬λνΈ, COM, μΈν°νμ΄μ€ μ λν΄ μμ보μ
μΈν°νμ΄μ€κ° μμκ°μν¨μμλ??
κ·Έλ¦¬κ³ μ λν°μμ dllμ¬μ©κ°λ₯νκ°
μ°Ύμ보λ μΈν°νμ΄μ€? μ΄κ²λ ν΄λμ€λ λΉμ·ν΄λ³΄μ΄λ€μ. κ·Έλ°λ° ν΄λμ€λ‘ μ΄ κΈ°λ₯μ ꡬννμλλ μΈν°νμ΄μ€λ‘ ꡬννμλλ λ³λ‘ λ€λ₯Έκ² μλκ² κ°μλ°... μ κ° μλͺ» μ΄ν΄νκ³ μλ건κ°μ? μΈν°νμ΄μ€λ‘ μ΄λ»κ² ꡬννλκ²μ΄ λ§μνμ λΆμμ©μ΄ μ μΌμ΄λλμ?
κ°λ¨ν μλ₯Ό λ€μ΄λ³Όκ²μ¬. κ³ λΈλ¦°μ΄ 곡격ν λλ Jump(),Atk(), κ³ λΈλ¦° λ©μ΄μ§κ° 곡격ν λλ Run(),Cast(),Magic() μ΄λ°μμΌλ‘ κ°κ° λ€λ₯Έ 루ν΄μ κ°μ§κ³ μλλ°, μ΄κ±Έ ꡬν νλ €λ©΄ λͺ¨λ μ μ κ°μ§ 컨ν μ΄λμμ forλ λλ μνμν¬λ Jump,Atk,Run,Cast,Magic λͺ¨λ ν¨μλ₯Ό λ€ μκ³ μμ΄μΌ νλ€λκ±° μλ? μ€λͺ μ΄ λ³λ‘ μλ κ΄κ³λ‘ μ μΆμΈ‘μ λμ΄ λ§ν건 μ΄κ±΄λ°. (κ³μ)
Behaviorλ ν΄λμ€λ₯Ό νλ λ§λ λ€κ³ μΉ©μλ€. μ΄κ±΄ μΈν°νμ΄μ€λ‘ μΈκ±°μ. μ΄ ν΄λμ€λ κ°μ ν¨μλ‘ μ€λ²λ‘λ©(μ€λ²λΌμ΄λ©)ν μ μλ Behave() ν¨μλ₯Ό κ°μ§κ³ μμ. κ·Έλ¦¬κ³ μ΄ Behaviorλ₯Ό μμν΄μ λκ°μ§ Behavior μΈν°νμ΄μ€λ₯Ό λ§λ¬. νλλ GoblinBehavior, λ€λ₯Έ νλλ GoblinMageBehavior. κ³ λΈλ¦°κ³Ό κ³ λΈλ¦° λ©μ΄μ§λ λ©€λ² κ°μ²΄λ‘ μ΄ λκ°λ₯Ό κ°κ° κ°μ§. (κ³μ)
GoblineBehaviorν΄λμ€λ Behave()λ₯Ό μ€λ²λ‘λ©ν΄μ Jump(),Atk() λ©μλλ₯Ό λΆλ¦. GoblinMageBehavior ν΄λμ€λ λ§μ°¬κ°μ§λ‘ Behave()λ₯Ό μ€λ²λ‘λ©ν΄μ Run(),Cast(),Magic()μ μ½ν¨. κ·Έλ λ€κ³ νλ©΄ λ©μΈλ£¨νμμ μ΄λ κ² μΈ μ μμ(μλμ½λ). for( enemy in enemyCOntainer) { enemy.GetInterface(INTERFACE_BEHAVIOR)->Behave(); }
κ·Έλμ κ΅³μ΄ κ°-μ€λΈμ νΈκ° μλλΌκ³ μΌλ°ν μμΌμ ꡬνν μ μλκ±°μ μΆ©λΆν μ€λͺ μ΄ λ¬λ?