SOLID ë?
→ ê°ì²Žì§í¥ ì€ê³ ì ì§ìŒìŒ íë ì€ê³ ìì¹ 5ê°ì§ë¥Œ ì€ì¬ì ë¶ëŠ
- ìê°ìŽ ì§ëë ì ì§ë³Žìì íì¥ìŽ ì©ìŽí ìì€í ì ë§ë€ê³ ì í ë ì ì©íë ìì¹
- ì¥ì : ì ì°ì±, ì¬ì¬ì©ì±, ì ì§ë³Žìì±ìŽ ëìì§
1) ëšìŒ ì± ì ìì¹ SRP
: í íŽëì€ë íëì ì± ìë§ ê°ì žìŒ íê³ íŽëì€ë¥Œ ë³ê²œíë ìŽì ë ëš íëì¬ìŒ íë€.
- ì§í€ì§ ìì ì, í ì±
ìì ë³ê²œì ìíŽì ë€ë¥ž ì±
ì곌 êŽë šë ìœëì ìí¥ì ë¯žì¹ ì ìì
- ì ì§ë³Žìê° ë§€ì° ë¹íšìšì ìŽê² ëš
- ì±
ì = êž°ë¥
- í íŽëì€ê° ìíí ì ìë êž°ë¥ìŽ ì¬ë¬ ê°ëŒë©Ž, íŽëì€ ëŽë¶ì íšììì ê²°í©ëê° ëìì§
- ìì§ëë ëê³ ê²°í©ëë ë®ì íë¡ê·žëšì ì€ê³íë ê²ìŽ ê°ì²Žì§í¥ ì€ê³ì íµì¬
- ì± ìì ìê² ìªŒê°ìŽ ë¶ëЬìí¬ íìê° ìì
ex) A ëŒë ë©ìëê° ìê³ , A ë©ìëë A ë©ìëì 결곌륌 êž°ë°ìŒë¡ B ë©ìë륌 ížì¶íê³ , B ë©ìëë B ë©ìëì 결곌륌 êž°ë°ìŒë¡ C ë©ìë륌 ížì¶íëë¡ êµ¬íëìŽ ìì ë륌 ê°ì . ë§ìœ A ë©ìëì ëììŽ ìŒë¶ ìì íŽìŒí ë€ë©Ž B,C ë©ìë륌 ì ë¶ ë°ê¿ìŒíë ìí©ìŽ ë°ìíš. ìŽ ë ì ì§ë³Žìê° ë§€ì° ë¹íšìšì ìž ê²ì ì ì ìêž° ë묞ì 몚ë ë¶ëЬíŽì€ íìê° ìì.
2) ê°ë°© íì ìì¹ OCP
: ìíížìšìŽ ììë íì¥ìë ìŽë € ììŒë ë³ê²œìë ë«í ììŽìŒ íë€.
- Ʞ졎ì ìœë륌 ë³ê²œíì§ ìê³ êž°ë¥ì ìì íê±°ë ì¶ê°í ì ìëë¡ ì€ê³íŽìŒ íš
- ì§í€ì§ ìì ì, ë€ìŽ ìºì€í
ìŽ ë°ì
- ë€ìŽ ìºì€í : ìì íŽëì€ì ê°ì²Žê° ë¶ëªš íŽëì€ íì ìŒë¡ íë³í ëë ê²ì ë€ì ììíë¡ ë늬ë ê²
- ì죌 ë³íë ë¶ë¶ì ì¶ìííšìŒë¡ì Ʞ졎 ìœë륌 ìì íì§ ìê±°ë êž°ë¥ì íì¥í ì ìëë¡ íš
- ì ì°íšì ëìŽë ê²ìŽ íµì¬
3) 늬ì€ìœí ì¹í ìì¹ LSP
: íë¡ê·žëšì ê°ì²Žë íë¡ê·žëšì ì íì±ì 깚ëšëŠ¬ì§ ììŒë©Žì ìëžíì (íì íŽëì€)ì ìŽëìë ìì ì êž°ë°íì (ìì íŽëì€) ìžì€íŽì€ë¡ ë°ê¿ ì ììŽìŒ íë€.
- íì íŽëì€ ê°ì²Žë ìì íŽëì€ ê°ì²Žìì ê°ë¥í íì륌 ìíí ì ììŽìŒ íš
- = ìì íŽëì€ ê°ì²Žë¥Œ íì íŽëì€ ê°ì²Žë¡ ì¹ííŽë ì ìì ìŒë¡ ëìíŽìŒ íš
- LSP륌 ì§í€ì§ ìì ì OCPë ìë°íê² ëë ê²
- êž°ë¥ íì¥ì ìíŽ êž°ì¡Žì ìœë륌 ì¬ë¬ ë² ìì íŽìŒ íêž° ë묞
4) ìží°íìŽì€ ë¶ëЬ ìì¹ ISP
: íŽëŒìŽìžížë ìì ìŽ ì¬ì©íë ë©ìëìë§ ì졎íŽìŒ íë€.
- í íŽëì€ë ìì ìŽ ì¬ì©íì§ ìë ìží°íìŽì€ë 구ííì§ ìììŒ íš
- ì¬ë¬ ê°ì ìžë¶ì ìž ìží°íìŽì€ê° ë«ë€ë ê²
- ê° íŽëŒìŽìžížê° íìë¡ íë ìží°íìŽì€ë¥Œ ë¶ëЬíšìŒë¡ì, íŽëŒìŽìžížê° ì¬ì©íì§ ìë ìží°íìŽì€ì ë³ê²œìŽ ë³ê²œìŽ ë°ìíëëŒë ìí¥ì ë°ì§ ìëë¡ íš
5) ì졎êŽê³ ìì ìì¹ DIP
: 구첎íì ì졎íêž° ë³Žëš ì¶ìíì ì졎íŽìŒ íë€.
- ì¶ìí : ë³íêž° ìŽë €ìŽ
- 구첎í : ë³íêž° ì¬ìŽ
- ê³ ì°šìì 몚ëì ì ì°šìì 몚ëì ì졎í멎 ìëš
- ì ì°šìì 몚ëìŽ ë³ê²œëìŽë ê³ ì°šìì 몚ëì ë³ê²œìŽ íììë ííê° ìŽìì
- ìì ë³Žë€ ë³íêž° ì¬ìŽ ëªšëì ì졎í멎 ìëë€ë ë»
ì 늬
- ëšìŒ ì± ì ìì¹ê³Œ ìží°íìŽì€ ë¶ëЬ ìì¹ì ê°ì²Žê° 컀ì§ë ê²ì ë§ìì€
- ê°ì²Žê° ëšìŒ ì±
ìì ê°ëë¡ íê³ íŽëŒìŽìžížë§ë€ ìžë¶ì ìž ìží°íìŽì€ë¥Œ 구ííê² íŽì
- í êž°ë¥ì ë³ê²œìŽ ë€ë¥ž ê³³ê¹ì§ 믞ì¹ë ìí¥ì ìµìí ìíŽ
- êž°ë¥ ì¶ê°/ë³ê²œì ì©ìŽíëë¡ ë§ë€ìŽ ì€
- 늬ì€ìœí ì¹í ìì¹ê³Œ ì졎êŽê³ ìì ìì¹ì ê°ë°© íì ìì¹ì ìí¬íž íŽì€
- ê°ë°© íì ìì¹ì ì죌 ë³íëë ë¶ë¶ì ì¶ìííê³ ë€íì±ì ìŽì©íì¬ êž°ë¥ íì¥ìë ì©ìŽíê², Ʞ졎 ìœëì ë³íìë 볎ìì ìŽê² ë§ë¬
- ë³íëë ë¶ë¶ ì¶ìí = ì졎êŽê³ ìì ìì¹
- ë€íì±ì ìŽì© = 늬ì€ìœí ì¹í ìì¹