KEMBAR78
Scala type class pattern | PDF
Scala type class
pattern
myjlms99@gmail.com
암묵적과 명시적 처리 알아보
기
매개변수 처리 기준
명시적일 경우는 함수에 초기값을 주지만 암
묵적인 경우 implicit로 지정한 값을 내부적으
로 처리한다.
명시적 trait 상속 처리
Object 이해하기
object 키워드를 이용해서 하나의 싱글턴 객
체를 만들어서 처리한다. 하나의 클래스와 하
나의 인스턴스만이 만들어진다.
Trait를 object로 상속해서 처리
trait에 추상 메소드를 지정하고 이를 상속해
서 구현한 두 개의 object를 만들고 실행한다.
Trait 용 동반 객체 생성
Trait와 동반객체 정의
trait와 동반 객체에 특별한 타입매개변수 없
이 정의하고 동일한 이름으로 호출해서 object
내의 메소드를 호출해도 처리가 된다.
타입 매개변수를 가진 Trait와 동반
객체
trait와 동반 객체를 정의하고 내부에 동반
객체의 익명 인스턴스를 만들어 처리한다.
익명 객체 만들기
Trait 이용한 익명 객체
trait를 정의하고 이를 이용해서 실제 new로
인스턴스를 만들때 구현된 블록을 제공하면
익명 인스턴스가 만들어진다.
암묵적 제너릭
클래스 정의하기
암묵적 처리 클래스 정의
인터페이스를 trait으로 정의하고 두개의
클래스를 암묵적으로 정의한다.
함수 정의 및 정수처리
함수를 정의할 때 암묵적으로 trait에 연결하
면 이 함수를 실행할 때 내부의 암묵적 메소드
를 호출할 수 있다.
문자열 처리
암묵적으로 문자열을 호출하면 문자열 처리
에 필요한 메소드가 호출되어 처리되는 것을
알 수 있다.
함수에 암묵적 매개변수
지정하기
암묵적 매개변수 지정
함수 내부에 명시적인 매개변수를 지정도
할 수 있지만 암묵적이 매개변수도 지정해
서 사용할 수 있다.
암묵적 매개변수 두개 지정
함수 내의 암묵적 매개변수가 하나인데 2
개를 지정하면 실제 값을 제대로 찾을 수가
없어 오류를 발생한다.
함수에는 하나만 암묵적 매개변수
만 존재
함수를 정의할 때 제일 앞에 하나만 암묵
적 매개변수를 지정해서 사용할 수 있다.
부분함수를 암묵적으로 지정하기
함수 매개변수 목록을 이용해서 실제 들어오
는 매개변수를 나눠서 처리할 수 있다. 이때도
실제 암묵적 매개변수 지정은 하나만 있어야
한다.
타입 클래스 패턴 순서
타입 클래스란
타입 클래스는 타입이 객체의 클래스를 정의하는 것과
같은 방식으로 타입의 클래스를 정의합니다. 스칼라에
서 타입 클래스는 적어도 하나의 타입 변수를 가진 특성
(trait)을 의미합니다.
타입 클래스 패턴 정의하는 법
암묵적으로 처리하기 위한 타입 클래스 패
턴 정의 순서
타입클래스 정의 : 특정 기능을 구현하기 위한 일반적인 특징을
표현하는 것
타입클래스의 인스턴스 정의 : 표준 타입에 대한 구현을 미리 작
성해 두거나 우리가 쓰고자 하는 커스텀 타입에 대한 구현을 정
의 해 놓은 object
타입클래스의 인터페이스 정의 : 인터페이스는 사용자들이 사용
하게 될 메소드를 정의 하는 것
명시적으로 클래스 정의
동일하 메소드가 있는 두 개의 클래스일 경우
다른 메소드가 추가할 필요가 있는 경우 수정
을 해야한다.
암묵적 타입 클래스와 객체 생성
trait에 추상 메소드를 정의하고 동반객체
를 이용해서 내부에 로직을 넣는다.
인터페이스 생성 및 활용
인터페이스 메소드 내부에 암묵적으로 타입
클래스를 지정하고 format 메소드를 호출하면
타입에 맞춰 처리된다.
타입 클래스를
상속해서 구성하기
타입을 지정하고 암묵적 동반객체
지정
trait를 통해 타입객체를 만들고 내부적으로
자동으로 연결될 object를 암묵적으로 지정한
다.
타입 클래스 지정
암묵적으로 연결
객체 지정
함수를 인터페이스로 사용하기
함수 정의시 실제 실행한 타입클래스를 암묵
적으로 지정하면 함수에 들어오는 타입에 따
라 메소드가 호출되어 처리된다.
함수에 암묵적 타
입클래스 지정
함수 실행하면 타
입에 맞는 object가
자동으로 연결된다

Scala type class pattern