어댑터 패턴
인터페이스가 맞지 않는 기존 객체(어댑티)를, 클라이언트가 기대하는 인터페이스로 변환해 사용하게 하는 패턴
1. Target 인터페이스
interface Logger {
log(message: string): void
}2. Adaptee 클래스
3. Adapter 클래스
4. 클라이언트 코드
Last updated
인터페이스가 맞지 않는 기존 객체(어댑티)를, 클라이언트가 기대하는 인터페이스로 변환해 사용하게 하는 패턴
interface Logger {
log(message: string): void
}Last updated
class LegacyLogger {
writeLog(text: string) {
console.log(`[LEGACY] ${text}`)
}
}class LoggerAdapter implements Logger {
constructor(private adaptee: LegacyLogger) {}
log(message: string) {
this.adaptee.writeLog(message)
}
}function run(logger: Logger) {
logger.log('adapter pattern')
}
const legacyLogger = new LegacyLogger()
const logger = new LoggerAdapter(legacyLogger)
run(logger)