Реализации на С++
Adapter
Общая реализация на языке С++
// подключаем нужные для работы программы библиотеки
# include <iostream>
# include <memory>
// подключаем пространство имен std
using namespace std;// класс BaseAdaptee является базовым описанием интерфейса,
// который нуждается в адаптации
class BaseAdaptee
{
public:
virtual ~BaseAdaptee() = default;
virtual void specificRequest() = 0;
};// класс ConcreteAdaptee определяет существующий интерфейс,
// который нуждается в адаптации
// (реализует адаптируемый интерфейс)
class ConcreteAdaptee : public BaseAdaptee
{
public:
virtual void specificRequest() override
{
cout << "Method ConcreteAdaptee;" << endl;
}
};int main()
{
shared_ptr<BaseAdaptee> adaptee = make_shared<ConcreteAdaptee>();
shared_ptr<Adapter> adapter = make_shared<ConcreteAdapter>(adaptee);
adapter->request();
}Last updated