오브젝트: 코드로 이해하는 객체지향 설계 13장을 읽으며 느낀점상속과 관련된 설계에서 부모 클래스와 자식 클래스 간의 계약이 어떻게 정의되고 지켜져야 하는지 알게 되었음. 부모 클래스에서 정의된 규칙과 제약을 자식 클래스가 확장하거나 변경할 때, 이를 위반하지 않고 일관성을 유지하는 것이 객체지향 설계의 핵심상속이 단순히 코드 재사용을 위한 도구가 아니라, 명확하고 견고한 계약을 기반으로 하는 책임의 연속성을 의미.계약에 의한 설계에서 계약 위반이 발생했을 때 시스템이 얼마나 취약해질 수 있는지에 설득력 있었고, 상속보다는 합성(composition)을 활용해 계약을 명시적으로 정의하고 관리하는 것이 때로는 더 효과적일 것 같음. 서브클래싱과 서브타이핑상속의 첫번째 용도는 타입 계층을 구현하는 것타입 ..