본문 바로가기
프로그래밍 놀이터/디자인 패턴, 리펙토링

[Effective Java] 타입을 정의할 때만 인터페이스를 사용하자.

by 돼지왕 왕돼지 2016. 11. 8.
반응형

 [Effective Java] 타입을 정의할 때만 인터페이스를 사용하자.


constant interface, Effective JAVA, enum, Interface, static final, [Effective Java] 타입을 정의할 때만 인터페이스를 사용하자., 네임 스페이스, 메소드, 상수, 상수 인터페이스, 상수 클래스, 열거 타입, 외부, 유틸리티 클래스, 인터페이스, 타입, 타입 정의, 형편없는 인터페이스


-
인터페이스를 구현한다는 것은 해당 클래스가 해당 인터페이스의 "타입" 이 될 수 있다는 것을 의미.
따라서 인터페이스는 인스턴스로 할 수 있는 일을 나타내야 하고, 다른 목적으로 정의하는 것을 옳지 않다.


-
상수 인터페이스(constant interface) 가 인터페이스의 기본 목적에 어긋난다.
메소드를 갖지 않고, 외부에 제공하는 상수 값을 갖는 static final 필드만을 갖는다.
이렇게 하지 말자!!
상수 인터페이스는 인터페이스를 "형편없이" 사용하는 예이다.
상수 인터페이스는 네임 스페이스를 줄이는 역할도 한다.


-
상수를 외부에 제공하고 싶다면 다음의 방법을 사용하는 것이 좋다.
만일 어떤 상수가 기존 클래스나 인터페이스와 밀접하게 연관되면, 그 상수를 해당 클래스나 인터페이스에 추가해야 한다.
만일 상수가 열거 타입(enumerated type)의 멤버가 되는 것이 좋다면 enum 타입으로 한다.
상수만 갖는 경우는 인스턴스를 생성할 수 없는 유틸리티 클래스에 상수를 두는 것이 좋다.



Summary


인터페이스는 타입을 정의할 때만 사용해야 한다.
상수를 외부에 제공하기 위해 사용하면 안 된다.





반응형

댓글