PHpullh

PHP · 패턴

Adapter 패턴

기존 라이브러리 인터페이스를 새 애플리케이션 계약에 맞추는 adapter 예제입니다.

패턴고급adapterlegacyintegration

핵심 설명

기존 라이브러리 인터페이스를 새 애플리케이션 계약에 맞추는 adapter 예제입니다.

PHP code

<?php
interface SmsSender {
    public function send(string $message): string;
}

class LegacySmsClient {
    public function push(string $body): string { return 'legacy:' . $body; }
}

class SmsAdapter implements SmsSender {
    public function __construct(private LegacySmsClient $client) {}
    public function send(string $message): string { return $this->client->push($message); }
}

echo (new SmsAdapter(new LegacySmsClient()))->send('hello');

학습 팁

패턴 예제는 클래스 수보다 의존성 방향과 책임 분리를 중심으로 읽는 것이 더 중요합니다.

주의할 점

패턴을 적용하더라도 구현체에 강하게 결합되면 오히려 변경 비용이 커집니다.

자주 묻는 질문

Adapter 패턴란 무엇인가요?

기존 라이브러리 인터페이스를 새 애플리케이션 계약에 맞추는 adapter 예제입니다.

Adapter 패턴 학습 시 주의할 점은 무엇인가요?

패턴을 적용하더라도 구현체에 강하게 결합되면 오히려 변경 비용이 커집니다.