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 ๊ด€๊ณ„์— ๋Œ€ํ•œ ๊ฒฝํ—˜์  ์„ค๊ณ„ ๋ฒ•์น™

  1. ๋งŒ์•ฝ Base ํด๋ž˜์Šค์™€ Derived ํด๋ž˜์Šค๊ฐ€ ๋˜‘๊ฐ™์€ ์ผ์„ ํ•œ๋‹ค๋ฉด ๊ตฌ๋ถ„ ํ•„๋“œ ์ด์šฉํ•œ ํด๋ž˜์Šค๋กœ ํ‘œํ˜„
  2. ๋˜‘๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ด๋“ค์„ ์•ฝ๊ฐ„์”ฉ ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ๊ณตํ†ต์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ๊ตฌํ˜„
  3. ๊ณตํ†ต๋œ ์—ฐ์‚ฐ์ด ์—†๋‹ค๋ฉด ์™„์ „ ๋ณ„๊ฐœ์ธ 2๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑ
  4. ๋งŒ์•ฝ Derived ํด๋ž˜์Šค๊ฐ€ ์ถ”๊ฐ€์ ์œผ๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋” ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ๊ตฌํ˜„ ์ƒ์†์„ ์‚ฌ์šฉ

์ฐธ์กฐ

http://blog.naver.com/PostView.nhn?blogId=kcufl&logNo=60063753537&parentCategoryNo=18&viewDate=&currentPage=1&listtype=0

์นดํ…Œ๊ณ ๋ฆฌ: