minho Yoo's blog

다형성

12. 다형성 코드 재사용을 목적으로 상속을 사용하면 변경하기 어렵고 유연하지 못한 설계에 이를 확률이 높아진다. 상속은 타입 계층을 구조화하기 위해 사용 타입 계층은 객체지향 프로그래밍의 중요한 특성 중 하나인 다형성의 기반을 제공 최근의 언어들은 상속 이외에도 다형성을 구현할 수 있는 다양한 방법들을 제공하고 있기 때문에 과거에 비해 상속의...

합성과 유연한 설게

11. 합성과 유연한 설계 상속이 부모 클래스와 자식 클래스를 연결해서 부모 클래스의 코드를 재사용하는 데 비해 합성은 전체를 표현하는 객체가 부분을 표현하는 객체를 포함해서 부분 객체의 코드를 재사용 상속에서 부모 클래스와 자식 클래스 사이의 의존성은 컴파일타임에 해결되지만 합성에서 두 객체 사이의 의존성은 런타임에 해결된다. 상속 관계는 is...

상속과 코드 재사용

10. 상속과 코드 재사용 객체지향 프로그래밍의 장점 중 하나는 코드를 재사용하기가 용이하다는 것 전통적인 패러다임에서 코드를 재사용하는 방법은 코드를 복사한 후 수정하는 것 객체지향에서는 코드를 재사용하기 위해 ‘새로운’ 코드를 추가 재사용 관점에서 상속이란 클래스 안에 정의된 인스턴스 변수와 메서드를 자동으로 새로운 클래스에 추가하는 구현 ...

객체 분해

7. 객체 분해 7.1 프로시저 추상화와 데이터 추상화 현대적인 프로그래밍 언어를 특정 짓는 중요한 두 가지 추상화 매커니즘은 프로시저 추상화와 데이터 추상화 프로시저 추상화는 소프트웨어가 무엇을 해야하는지를 추상화 데이터 추상화는 소프트웨어가 무엇을 알아야 하는지를 추상화 소프트웨어는 데이터를 이용해 정보를 표현하고 프로시저를 이용해 데이터...