스마트폰 파괴 방법과 매개변수 덕타핑
개요
인터페이스 비교로 에러를 처리하는 방식에 기반하여 인터페이스로 매개변수를 덕타이핑하는 건 어떨까 해서 한번 시도해봤습니다.
아이디어
아이디어는 쉽습니다. 베이스가 되는 인터페이스와 구조체를 작성합니다. 이후 필요에 따라 매개변수를 얻을 수 있는 새로운 인터페이스를 제공하고 해당 인터페이스에 대한 구조체를 작성합니다. 그렇다면 동일한 함수 원형에 여러가지 타입의 매개변수를 넘겨줄 수 있을 것입니다.
구현
스마트폰을 파괴하는 코드를 작성해보겠습니다.
PhoneBreaker
package phonebreaker
type PhoneBreakable interface {
Break(PhoneBreakingTool) int
}
type PhoneBreakingTool interface {
Hand() int
}
간단하게 PhoneBreakable
인터페이스로 휴대폰을 파괴할 수 있는 행위를 정의해 놓았습니다.
그리고 가장 간단한 파괴 도구로 Hand()
를 가지는 툴 인터페이스도 만들어 놓았습니다.