minho Yoo's blog

디자인 패턴과 프레임워크

15. 디자인 패턴과 프레임워크 소프트웨어 설계에서 반복적으로 발생하는 문제에 대해 반복적으로 적용할 수 있는 해결 방법을 디자인 패턴이라고 부른다. 디자인 패턴의 목적은 설계를 재사용하는 것 디자인 패턴은 다양한 변경을 다루기 위해 반복적으로 재사용할 수 있는 설계의 묶음 디자인 패턴이 설계를 재사용하기 위한 것이라면 프레임워크는 설계와 코드...

일관성 있는 협력

14. 일관성 있는 협력 객체는 협력을 위해 존재한다. 협력은 객체가 존재하는 이유와 문맥을 제공 객체지향 설계의 목표는 적절한 책임을 수행하는 객체들의 협력을 기반으로 결합도가 낮고 재사용 가능한 코드 구조를 창조하는 것 객체지향 패러다임의 장점은 설계를 재사용할 수 있다는 것 재사용을 위해서는 객체들의 협력 방식을 일관성 있게 만들어야 함...

다형성

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

합성과 유연한 설게

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

상속과 코드 재사용

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