반응형
📌 요약: Adapter 패턴 | 인터페이스 변환 | 호환성 문제 해결 | 구조 패턴
🔌 어댑터 패턴 (Adapter Pattern)
어댑터 패턴은 서로 호환되지 않는 인터페이스를 연결해주는 디자인 패턴입니다.
기존 클래스의 인터페이스를 사용자가 원하는 형태로 변환하여, 인터페이스 호환성 문제를 해결합니다.
📦 구조 설명
- Voltage220V: 기존의 220V 전원을 사용하는 클래스
- Voltage110V: 새로 요구되는 110V 인터페이스
- VoltageAdapter: 220V를 110V로 변환해주는 어댑터 역할의 클래스
✅ 클래스 구조
// 110V 전원을 사용하는 장치
class Voltage110V {
public:
virtual void connect110V() = 0;
virtual ~Voltage110V() {}
};
// 220V 전원을 사용하는 장치
class Voltage220V {
public:
virtual void connect220V() {
cout << "220V 전원에 연결됨" << endl;
}
};
// Voltage220V를 Voltage110V로 변환하는 어댑터
class VoltageAdapter : public Voltage110V {
private:
Voltage220V* valtage220V;
public:
VoltageAdapter(Voltage220V* v220) {
valtage220V = v220;
}
virtual void connect110V() override {
cout << "어댑터를 사용하여 220V -> 110V 변환" << endl;
valtage220V->connect220V();
}
};
🧪 사용 예제
int main() {
Voltage220V* v220 = new Voltage220V();
Voltage110V* v110 = new VoltageAdapter(v220);
v110->connect110V();
delete v220;
delete v110;
return 0;
}
🤖 실행 순서
1. Voltage220V 인스턴스를 생성
2. VoltageAdapter를 통해 Voltage220V를 Voltage110V로 변환
3. connect110V()를 호출하면 어댑터 내부에서 220V 연결 메서드가 호출됨
반응형
'C++ > 기본' 카테고리의 다른 글
| [C++] 31. Builder (0) | 2025.03.29 |
|---|---|
| [C++] 30. 행동패턴 (0) | 2025.03.29 |
| [C++] 28. Exception (0) | 2025.03.29 |
| [C++] 27. Singleton (0) | 2025.03.29 |
| [C++] 26. Template (0) | 2025.03.29 |