rust oop

러스트식 객체 지향은 데이터, 공개 범위, 동작 공유를 따로 설계한다

클래스 하나에 모든 것을 넣기보다 struct, impl, pub, trait가 각각 다른 책임을 맡는다.

데이터와 캡슐화
  • struct 필드
  • pub/private 경계
  • 불변식 보호
동작과 다형성
  • impl 메서드
  • trait 계약
  • generic 또는 dyn 선택
구분의미판단
상태 보관struct필드 소유
메서드impl타입에 동작 연결
공개 경계pub사용 가능한 표면 제한
대체 가능성trait동작 계약

핵심 Rust OOP는 상속이 없다는 결론보다 각 책임을 어떤 언어 장치에 둘지 보는 것이다.