Adapter pattern(어뎁터 패턴)

2022. 2. 28. 10:32Software Architecture/Software design

    목차
반응형

Adapter pattern

interface를 다른 interface로 변경할 때 사용하는 패턴 입니다. 

어떤 제 3의 코드가 있을 때 이 코드의 interface는 변경하지 않고 이를 사용하는 client가 요구하는 interfac에 맞추고자 하는 경우에 사용합니다. 

 

WildDog이라는 class가 제공하는 interface는 변경하지 않고 싶습니다. 

또한 IAnimal을 사용하는 client도 IAnimal이 제공하는 interface로 WildDog을 사용하고 싶습니다. 

이런 경우 위와 같이 concreate class로서 Dog을 만든 후 이를 WildDog이 adapt 하게 합니다. 

 

Sample code

class IAnimal {
public:
	...
    virtual void bark() const;
};


class Dog : public IAnimal {
public:
    Dog(std::shared_ptr<IWildDog> dog) {
    	m_wild_dog = dog;
    }
    
    virtual void bark() const {
    	m_wild_dog->howl();
    }

private:
    std::shared_ptr<IWildDog> m_wild_dog;
};
반응형

'Software Architecture > Software design' 카테고리의 다른 글

Builder pattern (빌더 패턴)  (0) 2022.02.28
Bridge pattern (브릿지 패턴)  (0) 2022.02.28
Abstract Factory pattern (팩토리 패턴)  (0) 2022.02.28
SA prj. #1  (0) 2021.12.19
Fundamentals of Software Architecture  (0) 2021.12.08