π¦ 10. Object Oriented Design
10. Object Oriented Design
μ κ·Όλ²
λ¨κ³ #1 : λͺ¨νΈμ±μ ν΄μ
κ°μ²΄ μ§ν₯ μ€κ³ κ΄λ ¨ λ¬Έμ λ€μ λκ² κ³ μμ μΌλ‘ λͺ¨νΈμ±μ λκ³ μλ€.
λκ° κ·Έκ²μ μ¬μ©ν κ²μ΄λ©° μ΄λ»κ² μ¬μ©ν κ²μΈμ§μ λν μ§λ¬Έμ λμ ΈμΌ νλ€.
μ΄λ€ μ©λλ‘ μ°μ΄λλμ λ°λΌ μ€κ³ μμ²΄κ° μμ ν λ€λ°λλ€.
λ¨κ³ #2 : ν΅μ¬ κ°μ²΄μ μ€κ³
μμ€ν μ λ£μ ν΅μ¬ κ°μ²΄κ° 무μμΈμ§ μκ°ν΄λ΄μΌ νλ€.
μλ₯Ό λ€λ©΄ μλΉμ κ°μ²΄ μ§ν₯μ μΌλ‘ μ€κ³νλ€κ³ νλ©΄ ν΅μ¬ κ°μ²΄λ‘λ
Table
Guest
Party
Order
Meal
Employee
Server
Host
λ±μ΄ μμ μ μλ€.
λ¨κ³ #3 : κ΄κ³ λΆμ
κ°μ²΄ μ¬μ΄μ κ΄κ³λ₯Ό λΆμν΄μΌ νλ€.
- μ΄λ€ κ°μ²΄κ° μ΄λ€ κ°μ²΄μ μν΄μλκ°?
- λ€λ₯Έ κ°μ²΄λ‘λΆν° μμ λ°μμΌ νλ?
- κ΄κ³λ λ€λλ€μΈκ° μΌλλ€μΈκ°?
λ¨κ³ #4 : νλ λΆμ
μ΄μ 골격μ μ΄λ μ λ μ‘νλ€.
κ°μ²΄κ° μνν΄μΌ νλ ν΅μ¬ νλλ€μ λν΄ μκ°νκ³ μ΄λ€μ΄ μ΄λ»κ² μνΈμμ©ν΄μΌ νλμ§ λ°μ Έλ΄μΌ νλ€.
λμμΈ ν¨ν΄
μ±κΈν€ ν΄λμ€
μ±κΈν€ ν¨ν΄μ μ΄λ€ ν΄λμ€κ° μ€μ§ νλμ κ°μ²΄λ§μ κ°λλ‘ νλ©° μ νν νλλ§ μμ±λμ΄μΌ νλ€.
1
2
3
4
5
6
7
8
9
10
public class Restaurant {
private static Restaurant _instance = null;
protected Restaurant() { ... }
public static Restaurant getInstance() {
if (_instance == null) {
_instance = new Restaurant();
}
return _instance;
}
}
λ§μ μ¬λλ€μ μ±κΈν€μ μ«μ΄νλλ°, λ¨μ ν μ€νΈμ λ°©ν΄λλ μμΈμ΄κΈ° λλ¬Έμ΄λ€.
ν©ν 리 λ©μλ
ν©ν 리 λ©μλλ μ΄λ€ ν΄λμ€μ κ°μ²΄λ₯Ό μμ±νκΈ° μν μΈν°νμ΄μ€λ₯Ό μ 곡νλ, νμ ν΄λμ€μμ μ΄λ€ ν΄λμ€λ₯Ό μμ±ν μ§ κ²°μ νλλ‘ λμμ€λ€.