E D R , A S I H C RSS

Composed Method

Composed Method

인간과 μ˜μ‚¬μ†Œν†΅μ΄ μž˜λ˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μ›ν•˜λŠ”κ°€? λ©”μ†Œλ“œμ˜ 이름을 μ§€μ„λ•Œ μ˜λ„κ°€ 잘 λ“œλŸ¬λ‚˜κ²Œ μ§“μž.

λ©”μ„Έμ§€λ₯Ό λ³΄λ‚΄λŠ” λ°μ—λŠ” μ‹œκ°„μ΄ κ±Έλ¦°λ‹€. 즉 ν•¨μˆ˜ ν˜ΈμΆœμ—λŠ” μ˜€λ²„ν—€λ“œκ°€ λ’€λ”°λ₯Έλ‹€. 그러λ€λ‘œ 졜고의 속도λ₯Ό λ‚΄λ €λ©΄ ν•˜λ‚˜μ˜ λ©”μ†Œλ“œμ— λͺ¨λ“ κ±Έ λ•Œλ €λ„£μ„ μˆ˜λ„ μžˆλ‹€. ν•˜μ§€λ§Œ? λŒ“κ°€λŠ” 클것이닀.(인λ ₯λ‚­λΉ„, 비ꡬ쑰적 ν”„λ‘œκ·Έλž¨ μ–‘μ‚°)

μ΄ˆλ³΄μžλ“€μ€ μž‘μ€ 크기의 λ§Žμ€ λ©”μ†Œλ“œλ₯Ό λ³΄κ³ λŠ”, ν”„λ‘œκ·Έλž¨μ˜ μ§„ν–‰ 상황을 잘 λͺ¨λ₯Έλ‹€κ³  ν•  μˆ˜λ„ μžˆλ‹€. ν•˜μ§€λ§Œ κ²½ν—˜μ΄ μŒ“μΌμˆ˜λ‘, 잘 μ§€μ–΄μ§„ μ΄λ¦„μ˜ λ©”μ„Έμ§€λŠ” μ½”λ“œμ˜ 흐름을 μ•ŒκΈ° μ‰½κ²Œ ν•΄μ€λ‹€. λ©”μ†Œλ“œ 이름을 μ˜λ„κ°€ λ“œλŸ¬λ‚˜κ²Œ μ§“λŠ”κ²ƒμ€ ν•˜λ‚˜μ˜ λ©”μ†Œλ“œ 크기λ₯Ό μž‘κ²Œ ν•˜λŠ” κ°€μž₯ 큰 μ΄μœ κ°€ λœλ‹€. κ·Έ μ½”λ“œλ₯Ό λ³΄λŠ” μ‚¬λžŒλ“€μ€ ν•˜λ‚˜ ν•˜λ‚˜μ˜ μž‘μ€ 뢀뢄을 μ΄ν•΄ν•¨μœΌλ‘œμ¨, 더 큰 뢀뢄을 μ΄ν•΄ν• μˆ˜ 있게 λœλ‹€. λ˜ν•œ λ©”μ†Œλ“œλ₯Ό μž‘κ²Œ ν•˜λ©΄ 버그가 λ°œμƒν–ˆμ„λ•Œλ„ 거기에 κ΅­ν•œμ‹œν‚¬ μˆ˜κ°€ μžˆλ‹€. λ­”κ°€ κ°œμ„ ν•˜κΈ°κ°€ μ‰¬μ›Œμ§ˆ 것이닀. λ¬Όλ‘  상속도 μžμ—°μŠ€λŸ½κ²Œ ν• μˆ˜ μžˆλ‹€.
λ‹Ήμ‹ μ˜ ν”„λ‘œκ·Έλž¨μ„ ν•˜λ‚˜μ˜ λ™μΌν™”λœ μž‘μ—…μ„ μˆ˜ν–‰ν• μˆ˜ μžˆλŠ” λ©”μ†Œλ“œλ“€λ‘œ λ‚˜λˆ λΌ. λͺ¨λ“  λ©”μ†Œλ“œλŠ” 같은 수μ€μ˜ 좔상화λ₯Ό μœ μ§€ν•΄μ•Ό ν•œλ‹€. μ΄λŠ” μžμ—°μŠ€λŸ½κ²Œ μ—¬λŸ¬κ°œμ˜ μž‘μ€ λ©”μ†Œλ“œλ₯Ό λ§Œλ“€μ–΄λ‚΄κ²Œ 될 것이닀.

당신이 κ°€μž₯ μ€‘μš”ν•˜κ²Œ Composed Methodλ₯Ό μ“Έλ•ŒλŠ”, 당신이 λ­”κ°€λ₯Ό κ΅¬ν˜„ν•˜κ³  μžˆμ„λ•Œ μƒˆλ‘œμš΄ μ±…μž„μ„ λ°œκ²¬ν–ˆμ„λ•Œμ΄λ‹€. 당신이 λ‘˜ μ΄μƒμ˜ λ©”μ„Έμ§€λ₯Ό λ‹€λ₯Έ 객체둜 λ³΄λ‚Όλ•Œ, μˆ˜μ‹  κ°μ²΄μ—μ„œλŠ” κ·Έ 메세지듀을 ν•©μΉ˜λŠ” Composed Methodλ₯Ό λ§Œλ“€ 수 μžˆλ‹€. μ΄λŸ¬ν•œ Method듀은 λ‹Ήμ‹ μ˜ μ‹œμŠ€ν…œμ˜ λ‹€λ₯Έ λΆ€λΆ„μ—μ„œλ„ μœ μš©ν•˜κ²Œ 쓰일 것이닀.

~cpp 
class Controller
{
private :
	/* ... */
	void controlInitialize() {/* ... */}
	void controlLoop() {/* ... */}
	void controlTerminate() {/* ... */}
public :
	void controlActivity()
	{
		controlInitialize();
		controlLoop();
		controlTerminate();
	}
};

개인적으둜, κ°„λ‹¨ν•΄λ³΄μ΄μ§€λ§Œ μ•„μ£Ό μ€‘μš”ν•œ 이야기라 생각함. ProgrammingByIntention 의 μž…μž₯μ—μ„œ, λ˜ν•œ '같은 레벨의 좔상화λ₯Ό μœ μ§€ν•˜λΌ'λΌλŠ” λŒ€λͺ©μ—μ„œ. (StepwiseRefinement λ₯Ό ν•˜λ©΄ μžμ—°μŠ€λŸ½κ²Œ 진행됨) --1002

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:58
Processing time 0.0202 sec