-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
- 타입이 식별된 후에 타입에 속하는 객체를 구현하기 위해 클래스를 사용하는 것이다.
- 의존하는 대상이 추상적일수록 결합도는 낮아지고, 변경영향도도 낮아진다.
- 골격 구현 추상 클래스 skeletal implementation abstract class
- 중복코드 제거를 위해 interface를 상속하는 abstract class를 사용할 수 있다.
duck typing
: 어떤 인터페이스에 정의된 행동을 수행할 수 있다면 그 객체를 해당 타입으로 분류해도 문제가 없다.
- 동적타입언어에서는 명시적으로 동일한 클래스를 상속받거나 인터페이스 구현을 하지 않더라도, 시그니처가 동일한 메서드를 가진 클래스는 같은 타입으로 취급할 수 있다.
- duck test : 어떤 대상의 행동이 오리와 같다면, 그것을 오리라는 타입으로 취급해도 무방하다.
- 유연한 설계가 가능하지만, 런타임에 오류가 발생된다.
Mixin
- 목적은 다양한 객체 구현 안에서 동일한 행동을 중복코드없이 재사용할 수 있게 만드는 것이다.
- scala trait
- java interface default method
- 유사하게 구현은 가능하지만, 무조건 Public이 되어야한다.
- 디폴트 메서드가 추가된 이유는 추상클래스를 대체하려는 것이 아니고, 기존 인터페이스에 새로운 오퍼레이션을 추가할때 하위 호환성을 위한 것.
Reactions are currently unavailable