🦁 걸어봐 위엄 라잌어 라이옹/👀 주차별 과제

[대학교멋사🦁/OOD] 3. 상속 보다 조립

우주수첩 2023. 5. 4. 17:38
728x90

 

 대개 상위 클래스의 기능을 재사용, 확장하는 방법으로 활용

 

# 단점 

  1. 상위 클래스 변경의 어려움 존재
    • 상위클래스의 변경이 모든 하위클래스에 영향을 미침
      • 앞으로 어떤 하위클래스가 추가될 지 모르기에 영향력의 크기가 점점 증가
    • 캡슐화가 약해짐
      • 하위클래스는 상위클래스가 어느정도 어떠한 동작을 하는지를 알아야 하는 경우가 발생
        => 상위클래스는 하위클래스에게 캡슐화의 의미가 약해지고이따지요
  2. 클래스의 불필요한 증가
    • 새로 클래스가 생성될 때마다 또 다른 하위 크래스가 생성
    • 어떤 클래스를 상속받아서 구현을 진행해야하는지 불명확한 상태가 발생하기도 함
  3. 상속 오용
    • 상속받은 메소드의 오용이 발생

 

 

# 그럼 워떠케?

 

조립하자!!

 

# 조립(Composition)

  • 여러 객체를 묶어 더 복잡한 기능을 제공
  • 보통 필드로 다른 객체를 참조하는 방식으로 조립하거나 객체를 필요하는 시점에 생성
  • 필드나 메소드에서 객체 생성후 재사용 하는 방식으로 구현  
        => 다양한 기능을 하는 객체를 조립하여 더 복잡한 기능을 제공

 

 

# 조립의 이점

  • 불필요한 클래스 증식 문제 해결 : 특정 기능 재사용 가능

 

 

# 그래서 결론이 뭔뎁?

  • 상속으로 구현하기 전에 객체의 조립으로 해결할 수 있는지에 대하여 한번 더 생각해보기
  • 진짜 하위 타입인 경우에만 상속구현을 사용하길 바람.

 

 

728x90