author
postNo
status
thumbnail
description
category
tags
createdAt
updatedAt
적응자 패턴(Adapter Pattern)
클래스의 인터페이스를 사용자가 원하는 인터페이스의 평태로 가공하는 패턴
좀 더 쉽게..
객체 지향에는
toString이라는 함수가 있다. 꼭 그런것은 아니지만, 일반적으로 toString은 객체를 string으로 표현하는 메소드이다. 하지만 나는
toString이 아닌 print를 통해 toString과 동일한 기능을 interface에 정의하고자 한다.아래의 예제 코드를 살펴보자
2개의 클래스를 배열로 만들어
print를 출력하도록 하였다. 이렇게 깔끔한 코드만 있으면 좋겠지만.. 아쉽게도 우리 회사에는 5년전에 개발된
Mouse라는 클래스가 있었다. 그리고 이 mouse 클래스에는 print대신 write라는 메소드가 있다.write의 메소드명을 print로 바꾸면 되겠지만, 이제 오래전 개발되어 사용하는곳이 너무나 많아 모두 수정하기에는 부담스럽다.이런 경우 어떻게 해야할까?
인터페이스의 확장
실제로 javascript에서는 다중 상속을 지원하지 않는다. 본 코드는 예제로만 보시길 권합니다.
(서드파티 라이브러리를 이용하면 멀티 상속이 가능하긴 합니다.)
이렇게
MouseAdapter를 선언하였다.print() 함수를 그대로 사용할 수 있게 되었다.