백문이 불여일견이라고 했으니, 간단한 예제와 함께 살펴보도록 하자.
음악 재생기 애플리케이션에서 음악을 재생하는 기능을 구현한다고 가정해 보자. 먼저 포트를 정의해야 한다.
// MusicPlayerPort.js(포트)
class MusicPlayerPort {
play(song) {
throw new Error('play method must be implemented');
}
}
module.exports = MusicPlayerPort;
MusicPlayerPort는 음악 재생기에서 사용할 포트로, play() 메서드를 정의한다. 이 메서드는 실제 구현체에서 구현해야 한다.
로컬 음악 플레이어 어댑터 구현
로컬 파일 시스템에서 음악을 재생하는 어댑터를 구현해야 한다.
// LocalMusicPlayerAdapter.js(어댑터)
const MusicPlayerPort = require('./MusicPlayerPort');