Share
Sign In

브릿지 패턴

브릿지 패턴의 핵심은 인터페이스의 추상화와 구현을 분리하고, 계층 구조에서 각 클래스를 느슨하게 결합하는 것이다. 이렇게 되면 복잡한 구조에서 서로 독립적으로 요구사항을 변경할 수 있다. 이중 어댑터 패턴이라고도 한다.
다음은 다양한 로그 방식을 계층화한 예시이다.
class ConsoleLogger { log(message) { console.log(message); } } class AlertLogger { log(message) { alert(message); } } class Logger { constructor(logger) { this.logger = logger; } log(message) { throw new Error('Not implemented!'); } } class InfoLogger extends Logger { constructor(message, logger) { super(logger); this.message = message; } log() { this.logger.log(`INFO: ${this.message}`); } } class ErrorLogger extends Logger { constructor(message, logger) { super(logger); this.message = message; } log() { this.logger.log(`ERROR: ${this.message}`); } } const consoleLogger = new ConsoleLogger(); const alertLogger = new AlertLogger(); const infoLogger = new InfoLogger('데이터', consoleLogger); const errorLogger = new ErrorLogger('무언가 잘못된것 같은데요?!', alertLogger); infoLogger.log(); // "INFO: 데이터" errorLogger.log(); // "ERROR: 무언가 잘못된것 같은데요?!"