LSP
Liskov Substitution Principle
๋ฆฌ์ค์ฝํ ๋์ฒด ์์น์ ๊ฐ์
๋ฆฌ์ค์ฝํ ๋์ฒด ์์น์ ์ ์
๊ฐ์ฒด์งํฅ 5๋ ์์น(SOLID) ์ค ํ๋๋ก ๊ธฐ๋ฐ ํด๋์ค๋ ์๋ธ ํด๋์ค๋ก ๋์ฒด๋๋ IS-A ๊ด๊ณ๊ฐ ์ฑ๋ฆฝํด์ผ ํ๋ค๋ ์์น
๋ฆฌ์ค์ฝํ ๋์ฒด ์์น์ ์ ์ ์กฐ๊ฑด
- Pre-Condition: Base class ๋ณด๋ค ์กฐ๊ฑด์ด ๊น๋ค๋ก์ด pre-condition์ด ์์ผ๋ฉด ์๋จ
- Post-Condition: Base class ๋ณด๋ค ์กฐ๊ฑด์ด ๋ถ์กฑํ post-condition์ด ์์ผ๋ฉด ์๋จ
- Derived method๋ Base method์ ๋์ผํด์ผ ํจ
๋ฆฌ์ค์ฝํ ๋์ฒด ์์น์ ์ค๊ณ ์์น

IS-A ๊ด๊ณ์ ๋ํ ๊ฒฝํ์ ์ค๊ณ ๋ฒ์น
- ๋ง์ฝ Base ํด๋์ค์ Derived ํด๋์ค๊ฐ ๋๊ฐ์ ์ผ์ ํ๋ค๋ฉด ๊ตฌ๋ถ ํ๋ ์ด์ฉํ ํด๋์ค๋ก ํํ
- ๋๊ฐ์ ์ฐ์ฐ์ ์ ๊ณตํ์ง๋ง, ์ด๋ค์ ์ฝ๊ฐ์ฉ ๋ค๋ฅด๊ฒ ๊ตฌํํ๋ค๋ฉด ๊ณตํต์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ ๊ตฌํ
- ๊ณตํต๋ ์ฐ์ฐ์ด ์๋ค๋ฉด ์์ ๋ณ๊ฐ์ธ 2๊ฐ์ ํด๋์ค๋ฅผ ์์ฑ
- ๋ง์ฝ Derived ํด๋์ค๊ฐ ์ถ๊ฐ์ ์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ ๊ตฌํํ๋ค๋ฉด ๊ตฌํ ์์์ ์ฌ์ฉ