PHpullh
학습 라이브러리/PHP/캐시 데코레이터

PHP · 패턴

캐시 데코레이터

기존 구현을 감싸 추가 기능을 붙이는 decorator 패턴 예제입니다.

패턴고급decoratorcachegateway

핵심 설명

기존 구현을 감싸 추가 기능을 붙이는 decorator 패턴 예제입니다.

PHP code

<?php
interface ArticleGateway {
    public function latest(): array;
}

class CachedArticleGateway implements ArticleGateway {
    private ?array $cache = null;
    public function __construct(private ArticleGateway $inner) {}
    public function latest(): array {
        return $this->cache ??= $this->inner->latest();
    }
}

echo CachedArticleGateway::class;

학습 팁

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

주의할 점

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

자주 묻는 질문

캐시 데코레이터란 무엇인가요?

기존 구현을 감싸 추가 기능을 붙이는 decorator 패턴 예제입니다.

캐시 데코레이터 학습 시 주의할 점은 무엇인가요?

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