20.1 인터페이스


인터페이스를 우리말로 하면 상호작용면 으로 직역할 수 있다. 우리말 이름에서 유추할 수 있듯 인터페이스를 이용하면 메서드 구현을 포함한 구체화된 객체가 아닌 추상화된 객체로 상호작용할 수 있다.

20.1.1 인터페이스 선언


인터페이스 선언은 type을 쓴 뒤 인터페이스 이름을 쓰고 interface 키워드를 쓰면 된다. 중괄호 안에는 메서드 집합을 써준다.

type DuckInterface interface{
	Fly()
	Walk(distance int) int
}

타입 선언에 사용하는 type 키워드가 가장 먼저 쓰이는데, 인터페이스도 구조체처럼 타입 중 하나이다. 이 말은 인터페이스 변수 선언이 가능하고 값으로도 사용할 수 있다는 말이 된다. 다음 아래의 유의사항을 잘 지키자

20.2 인터페이스 왜 쓰나?


인터페이스는 객체지향 프로그래밍에서 아주 중요한 역할을 한다. 인터페이스를 이용하면 구체화된 객체가 아닌 인터페이스만 가지고 메서드를 호출 할 수 있고, 필요에 따라 구체화 객체로 사용할 수 있다. 코드의 유연하게 사용할 수 있게 해주고, 코드 변경이 있더라고 전체적으로 수정할 필요 없이 해당 구조체 인스턴스로 변경만 해주면 된다.

20.2.1 추상화 계층