Object-oriented Programming: OOP

객체지ν–₯의 사싀과 μ˜€ν•΄

  1. 객체지ν–₯ νŒ¨λŸ¬λ‹Ήλ―Έμ˜ 핡심은 자율적인 κ°μ²΄λ“€μ˜ ν˜‘λ ₯ν•˜λŠ” 것

  2. κ°μ²΄λŠ” μƒνƒœμ™€ 행동, μ‹λ³„μžλ₯Ό κ°€μ§„ 쑴재

  3. μΆ”μƒν™”λŠ” 동적인 객체듀을 λ‹¨μˆœν™”μ‹œμΌœ 정적인 νƒ€μž…μœΌλ‘œ κ°ˆλ¬΄λ¦¬ν•˜λŠ” 것

  4. 객체듀은 ν˜‘λ ₯에 μ°Έμ—¬ν•˜κΈ° μœ„ν•΄ νŠΉμ •ν•œ 역할을 λ§‘κ³  역할에 μ ν•©ν•œ μ±…μž„μ„ μˆ˜ν–‰ν•œλ‹€.

  5. ν›Œλ₯­ν•œ λ©”μ‹œμ§€λ₯Ό μ„ νƒν•˜λ―€λ‘œμ¨ 객체의 μžμœ¨μ„±κ³Ό μ„€κ³„μ˜ μœ μ—°μ„±μœΌλ‘œ 객체지ν–₯ μ„€κ³„μ˜ 기반이 λœλ‹€λŠ” 것

  6. 객체지ν–₯ νŒ¨λŸ¬λ‹€μž„μ€ κ°μ²΄λ“€μ˜ κ΅¬μ‘°μ•ˆμ— κΈ°λŠ₯을 λ…Ήμž„μœΌλ‘œμ¨ 변화에 μ•ˆμ •μ μΈ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” 것

  7. 1 ~ 6 κΉŒμ§€μ˜ 유기적인 흐름을 μ½”λ“œλ‘œ λ…Ήμ—¬ κ΅¬ν˜„ν•œ 것

1. ν˜‘λ ₯ν•˜λŠ” κ°μ²΄λ“€μ˜ 곡동체

μ—­ν• κ³Ό μ±…μž„, ν˜‘λ ₯에 λŒ€ν•œ 이야기

였브젝트

  • μ‹œλ‚˜λ¦¬μ˜€ λŒ€λ‘œ 1μ°¨ μ½”λ“œ μž‘μ„±

  • 문제점

    • μ½”λ“œμ˜ 둜직이 ν•œ 곳에 λͺ°λ € μžˆμ–΄ 변경에 취약함

    • 객체 μ‚¬μ΄μ˜ μ˜μ‘΄μ„±μ΄ λ†’μŒ -> 결합도가 λ†’μŒ

  • ν•΄κ²°μ±…

    • μ±…μž„μ˜ 이동

1μ°¨
2μ°¨
3μ°¨
4μ°¨

μ˜ν™” 예맀

μ˜ν™” 1μ°¨
μ˜ν™” 2μ°¨
  • NoneDiscountPolicy μΆ”κ°€

μ˜ν™” 3μ°¨
  • μΈν„°νŽ˜μ΄μŠ€ λ„μž…

μ˜ν™” 4μ°¨
μ˜ν™” 데이터 기반
μ˜ν™” 데이터 기반 1μ°¨ κ°œμ„ 
μ˜ν™” λ¦¬νŽ™ν† λ§
  • λ¦¬νŽ™ν† λ§ν•œ ꡬ쑰도 κ²°κ΅­ 할인 μ •μ±…μ—μ„œ 상속을 μ΄μš©ν•˜κ³  있기 λ•Œλ¬Έμ— μ‹€ν–‰ 쀑에 μ˜ν™”μ˜ 할인 정책을 λ³€κ²½ν•˜κΈ° μœ„ν•΄μ„œ μƒˆλ‘œμš΄ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•΄μ•Όν•œλ‹€.

  • 이 ν•΄κ²° λ°©λ²•μœΌλ‘œ 합성을 μ΄μš©ν•œ ꡬ쑰둜 λ³€κ²½ ν•΄μ•Ό ν•œλ‹€.

  • DiscountPolicy둜 λΆ„λ¦¬ν•œ λ’€ Movie에 ν•©μ„±ν•˜μ—¬ μœ μ—°ν•œ 섀계λ₯Ό ν•΄μ•Όν•œλ‹€.

Last updated