Post

🦊 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;
	}
}

λ§Žμ€ μ‚¬λžŒλ“€μ€ 싱글톀을 μ‹«μ–΄ν•˜λŠ”λ°, λ‹¨μœ„ ν…ŒμŠ€νŠΈμ— λ°©ν•΄λ˜λŠ” μš”μΈμ΄κΈ° λ•Œλ¬Έμ΄λ‹€.

νŒ©ν† λ¦¬ λ©”μ„œλ“œ

νŒ©ν† λ¦¬ λ©”μ„œλ“œλŠ” μ–΄λ–€ 클래슀의 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λ˜, ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ μ–΄λ–€ 클래슀λ₯Ό 생성할지 κ²°μ •ν•˜λ„λ‘ 도와쀀닀.

This post is licensed under CC BY 4.0 by the author.