(Effective Java) 추상클래스 대신 인터페이스를 사용하라
* 인터페이스는 믹스인을 정의하는데 이상적이다.
-> 믹스인은 주 자료형 의외에 추가로 구현할 수 있는 자료형으로, 어떤 선택적 기능을 제공한다는 사실을 선언하기 위해 쓰인다. 예를들어, Comparable이다.
* 인터페이스 안에는 메소드 구현을 둘 수 없지만, 그렇다고 프로그래머가 사용할 수 있는 코드를 제공할 방법이 없는 건 아니다.
추상골격구현 클래스를 중요 인터페이스마다 두면, 인터페이스의 장점과 추상 클래스의 장점을 결합할 수 있다.
-> 인터페이스로는 자료형을 정의하고, 구현하는 일은 골격 구현 클래스에 맡기면 된다.
관습적으로 골격 구현 클래스의 이름은 AbstractInterface와 같이 정한다.
* 다양한 구현을 허용하는 자료형을 추상 클래스로 정의하면 인터페이스보다 나은 점이 한가지 있는데, 인터페이스 보다는 추상클래스가 발전시키기 쉽다는 것이다.
-> 믹스인은 주 자료형 의외에 추가로 구현할 수 있는 자료형으로, 어떤 선택적 기능을 제공한다는 사실을 선언하기 위해 쓰인다. 예를들어, Comparable이다.
* 인터페이스 안에는 메소드 구현을 둘 수 없지만, 그렇다고 프로그래머가 사용할 수 있는 코드를 제공할 방법이 없는 건 아니다.
추상골격구현 클래스를 중요 인터페이스마다 두면, 인터페이스의 장점과 추상 클래스의 장점을 결합할 수 있다.
-> 인터페이스로는 자료형을 정의하고, 구현하는 일은 골격 구현 클래스에 맡기면 된다.
관습적으로 골격 구현 클래스의 이름은 AbstractInterface와 같이 정한다.
* 다양한 구현을 허용하는 자료형을 추상 클래스로 정의하면 인터페이스보다 나은 점이 한가지 있는데, 인터페이스 보다는 추상클래스가 발전시키기 쉽다는 것이다.
댓글
댓글 쓰기