Skip to content

Latest commit

 

History

History
 
 

item20

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

추상 클래스보다는 인터페이스를 우선하라.


요약

일반적으로 다중 구현용 타입으로는 인터페이스가 가장 적합하다. 복잡한 인터 페이스라면 구현하는 수고를 덜어주는 골격 구현을 함께 제공하는 방법을 꼭 고 려해보자. 골격 구조 현은 '가능한 한' 인터페이스의 디폴트 메서드로 제공하여 그 인터페이스를 구현한 모든 곳에서 활용하도록 하는 것이 좋다. '가능한 한' 이라고 한 이유는, 인터페이스에 걸려 있는 구현상의 제약 때문에 골격 구현을 추상 클래스로 제공하는 경우가 더 흔하기 때문이다.


장점

  • 기존 클래스에도 손쉽게 새로운 인터페이스를 구현해 넣을수 있다.
  • 인터페이스로는 계층구조가 없는 타입 프레임워크를 만들 수 있다.
  • 레퍼클래스와 함께 사용하면, 인터페이스는 기능을 향상시키는 안전하고 강력한 수단이된다. (상속해서 만든 클래스는 래퍼클래스보다 활용도가 떨어지고 깨지기는 쉽다)
인터페이스와 추상 골격 구현 클래스를 함께 제공하는 식으로 인터페이스와 추상클래스의 장점을 모두 취할 수 있다.

이해를 돕는 source 코드