개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴 3

SOLID 설계 원칙

설계 원칙: SOLID SOLID 설계 원칙은 다섯 가지 원칙으로 구성된다. 객체 지향 설계 관련 내용들을 체계적으로 정리한 것으로서 이 원칙만으로도 좋은 설계를 하는데 큰 도움이 될 것이다. SRP, Single responsibility principle 단일 책임 원칙 OCP, Open-closed principle 개방-폐쇄 원칙 LSP, Liskov substitution principle 리스코프 치환 원칙 ISP, Interface segregation principle 인터페이스 분리 원칙 DIP, Dependency inversion principle 의존 역전 원칙 SRP, Single responsibility principle 단일 책임 원칙 클래스는 단 한 개의 책임을 가져야 한다..

재사용, 상속보다는 조립으로

재사용: 상속보단 조립 상속을 사용하면 재사용을 쉽게 할 수 있는 것은 분명하다. 하지만 상속을 사용할 경우 몇 가지 문제점이 있다. 이 글에서는 상속을 통한 재사용 과정에서 발생할 수 있는 문제점을 살펴보고, 또 다른 재사용 방법인 객체 조립을 통해 상속을 통한 재사용의 단점을 해소하는 방법을 알아본다. 상속을 통한 재사용의 단점 상위 클래스 변경의 어려움 어떤 클래스를 상속받는다는 것은 그 클래스에 의존한다는 뜻이다. 따라서 의존하는 클래스의 코드가 변경되면 영향을 받을 수 있다. 즉, 상위 클래스에서 변경의 여파가 하위 클래스로 전파된다. 최악의 경우 상위 클래스의 변화가 모든 하위 클래스에 영향을 줄 수 있다. 이는 클래스 계층도에 있는 클래스들을 한 개의 거대한 단일 구조처럼 만들어 주는 결과를..

다형성과 추상 타입

다형성과 추상 타입 객체 지향에서 유연하게 구현을 변경할 수 있도록 하는 방법으로 추상화가 있다. 추상화는 다형성으로 가능해진다. 다형성을 알기 위해서는 상속을 알아야 한다. 상속 개요 상속(Inheritance)은 한 타입을 그대로 사용하면서 구현을 추가할 수 있도록 해주는 방법을 제공한다. 어떤 객체가 갖고 있는 기능을 확장해 새로운 기능을 구현하고 싶을 때 상속을 사용한다. 상속 대상이 되는 클래스를 상위(super) 클래스 또는 부모 클래스라고 부른다. 상속을 받는 클래스를 하위(sub) 클래스 또는 자식 클래스라고 부른다. 자식 클래스는 부모 클래스에 정의된 구현을 물려받는다. 프로그래밍 언어마다 하위 타입에서 물려받을 수 있을 것이 다를 수 있다. 다수의 언어에서 private 범위를 갖는 메..