λ€νμ±(Polymoriphism)
μ¬λ¬(poly) λͺ¨μ΅(morph)μ κ°λ κ²
κ°μ²΄ μ§ν₯μμλ ν κ°μ²΄κ° μ¬λ¬ νμ μ κ°λ κ²
μΆμν(Abstraction)
λ°μ΄ν°λ νλ‘μΈμ€ λ±μ μλ―Έκ° λΉμ·ν κ°λ μ΄λ μλ―Έ μλ ννμΌλ‘ μ μνλ κ³Όμ
λ κ°μ§ λ°©μμ μΆμν
- νΉμ ν μ±μ§ ex) ν΅ν, κΈμ‘ μ 'Money class'λ‘ μΆμνν μ μλ€.
- κ³΅ν΅ μ±μ§(μΌλ°ν) ex) μΌμ±μ SL-M2XX, HP MXX μ 'νλ¦°ν°'λ‘ μΆμν ν μ μλ€.
μλ‘ λ€λ₯Έ ꡬνμ μΆμ±ν νλ€. μλ₯Ό λ€μ΄
(SCPλ‘ νμΌ μ λ‘λ, HTTPλ‘ λ°μ΄ν° μ μ‘, DB ν μ΄λΈμ μ½μ ) => νΈμ λ°μ‘ μμ²μΌλ‘ μΆμνν μ μλ€.
νμ μΆμν
μ¬λ¬ ꡬν ν΄λμ€λ₯Ό λννλ μμ νμ λμΆ
κΈ°λ₯μ λν μλ―Έλ§ μ 곡νκ³ κ΅¬νμ μ 곡νμ§ μμ μ΄λ»κ² ꡬνν μ§ μ μ μλ€ .
-> ꡬνμ μ 곡νλ ν΄λμ€λ₯Ό μ½ν¬λ¦¬νΈ ν΄λμ€λΌκ³ νλ€.
μλ₯Ό λ€μ΄ μΆμ νμ μ μ΄μ©ν Notifier.class κ° μλ€κ³ νμ λ
Notifier notifier = getNotifier(...);
notifier.notify(somenoti);
ν΄λΉ κΈ°λ₯μ ꡬνμ κ°μΆ μ μκ³ , κΈ°λ₯μ ꡬνμ΄ μλ μλλ₯Ό λ μ λλ¬λ΄μ κ°λ μ±μ΄ μ’λ€.
λ§μ½ μ½ν¬λ¦¬νΈ ν΄λμ€λ₯Ό μ§μ μ¬μ©νλ€λ©΄?
1. μ£Όλ¬Έ μ·¨μκ° λλ©΄ Sms λ₯Ό 보λ΄λ λ‘μ§μ΄ μλ€.
2. μꡬμ¬νμ΄ λ³κ²½λμ΄ μΆκ°μ μΌλ‘ kakaoPushλ 보λ΄μΌνλ€.
3. μ£Όλ¬Έ μ·¨μ λλ λ‘μ§μ μλμ κ°μ΄ μΆκ°λλ€.
if(pushEnabled){
kakaoPush.push();
} else {
smsSender.send():
}
μ£Όλ¬Έ μ·¨μ λ‘μ§μ΄ λ³κ²½λμ§ μμμ§λ§ μμ μλ sms, kakaoPush λ±μ΄ λ³κ²½λλ€.
μΆμ νμ μ¬μ©
곡ν΅μ μ λμΆνμ¬ μΆμ νμ μ μ¬μ©νλ€.
public void cancel(String ono){
// μ£Όλ¬Έ μ·¨μ μ²λ¦¬
Notifier notifier = getNotifier(..);
norifier.notify(..);
}
private Notifier getNotifier(..){
if(pushEnabled)
return new KakaoNotifier();
else
return new SmsNotifier();
}
μΆμνλ μμ‘΄ λμμ΄ λ³κ²½νλ μμ μ νλ€.
μΆμν -> μΆμ νμ μ¦κ° -> 볡μ‘λ μ¦κ°
- μμ§ μ‘΄μ¬νμ§ μλ κΈ°λ₯μ λν μ΄λ₯Έ μΆμνλ μ£Όμνλ€. -> μλͺ»λ μΆμν κ°λ₯μ±, 볡μ‘λλ§ μ¦κ°νλ€.
- μ€μ λ³κ²½, νμ₯μ΄ λ°μν λ μΆμν μλ
μΆμνλ₯Ό μ νλ €λ©΄ μ΄λ€κ±Έ μκ°ν΄μΌ ν κΉ?
ꡬνμ ν μ΄μ κ° λ¬΄μ λλ¬ΈμΈμ§ μκ°ν΄μΌ νλ€.
μμ)
κΈ°λ₯ μμ
- ν΄λΌμ°λ νμΌ ν΅ν© κ΄λ¦¬ κΈ°λ₯ κ°λ°
- λμ ν΄λΌμ°λ - λλ‘λ°μ€, λ°μ€
- μ£ΌμκΈ°λ₯ - κ° ν΄λΌμ°λμ νμΌ λͺ©λ‘ μ‘°ν, λ€μ΄λ‘λ, μ λ‘λ, μμ ,κ²μ
-> μΆμννμ§ μμ κ²½μ° λμ ν΄λΌμ°λκ° μΆκ°λμμ λ ( NCLOUD ) λ€μ΄λ‘λ, μ λ‘λ, μ‘°ν λ±μ if blockμ΄ κ°κ° λμ΄λλ€.
-> νμ§λ§ μλμ κ°μ΄ μΆμνλ₯Ό ν΄μ€λ€λ©΄ κΈ°λ₯μ λν μ½λ μμ μμ΄ μλ‘μ΄ μ’ λ₯μ ν΄λΌμ΄λλ₯Ό μΆκ°ν μ μλ€.
μ΄λ¬ν ꡬ쑰λ₯Ό OCP λΌκ³ νλ€. νμ₯μ μ΄λ € μκ³ μμ μ λ«ν μλ€.
'π» Computer Science' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
HTTP , HTTPS (0) | 2022.02.23 |
---|---|
03. κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μ λ¬Έ - μμ, μμ‘΄ (0) | 2021.05.10 |
01. κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μ λ¬Έ - κ°μ²΄μ μΊ‘μν (0) | 2021.05.07 |
08. HTTP μΉ κΈ°λ³Έ μ§μ - μΊμ κΈ°λ³Έ λμ (0) | 2021.05.06 |
07. HTTP μΉ κΈ°λ³Έ μ§μ - HTTP ν€λ κ°μ (0) | 2021.05.06 |