Home

[OOP] 객체지향 사고 프로세스 Chapter_8. 프레임워크 및 재사용

객체지향 사고 프로세스

객체지향 사고 프로세스

맷 와이스펠드 지음 / 박진수 옮김

JPUB

목차

프레임워크 및 재사용: 인터페이스와 추상클래스를 사용해 설계하기

인터페이스와 추상클래스는 코드 재사용을 위한 매커니즘으로 계약이라고 하는 개념의 기초를 제공한다.

코드 재사용은 객체지향 패러다임만의 것이 아니다. 하지만 객체지향 패러다임은 재사용 가능 코드 개발을 용이하게 해주는 몇가지 매커니즘이 있는데 이번장에 설명한 것들이 이러한 것들이다.

추상 클래스

추상 클래스는 구현부가 없는 추상 메서드가 한 개 이상 들어 있는 클래스를 말한다. 다만 구상 메서드가 없어서는 안된다는 것은 아니다. 구상 메서드는 있을 수 도 있고, 없을 수 도 있다.

추상 클래스를 이용하면 이를 이용하는 클래스는 추상 클래스에 있는 추상 메소드를 모두 구현해야 한다. 이는 동일한 API를 강제할 수 있으며 실제 구현 클래스에서 행위를 책임질 수 있도록 만든다. 추상 클래스만으로는 인스턴스화 할 수 없으며 이를 상속받은 자식 클래스에서부터 인스턴스화 할 수 있다.

추상 클래스는 결국 extends 키워드를 통해서 자식 클래스를 구현한다. 결국 상속을 이용해야 한다는 것인데, 상속은 엄격한 is-a 관계에서 사용하는 것이다. 즉, 사용할때 많은 고민을 해봐야 한다는 것이다.

인터페이스

인터페이스는 추상 클래스와 하는 역할을 비슷하다. 하지만 구현부를 전혀 제공 할 수 없다. 즉, 인터페이스에서 선언된 모든 메소드를 클래스에서 모두 구현해야 한다는 것인데, 추상 클래스는 추상 메소드가 한개 이상이지만 인터페이스는 모든 메소드가 추상 메소드라는 것이다.

인터페이스의 경우에는 implements 키워드를 통해서 클래스를 구현한다. 하지만 상속과 다르게 인터페이스는 관련이 없는 클래스들끼리도 사용할 수 있다. 즉, 사용에 있어서 자유롭다는 것이다. 인터페이스는 행위만 모델링 한다. 인터페이스는 어떠한 유형의 구현부도 제공하지 않으며, 행위만 제공한다.

정리

추상 클래스와 인터페이스를 이용한다면 공통의 메소드를 재 작성하지 않고 손쉽게 재활용 할 수 있다.

추상 클래스는 extends 키워드를 사용하며, 자식 Class에서 추상 메소드를 완성하도록 유도할때 사용하는 것이라면, 인터페이스는 모든 추상 메소드를 구현하도록 강제 하는 것이라 볼 수 있다.


위 정리글은 객체지향 사고 프로세스에서 인용한 것입니다.

[ISBN 979-11-90665-21-6]

Loading script...