Имеется некоторая C-библиотека, состоящая из трех функций:
typedef int string_eater_id;
string_eater_id create_string_eater();
void eat_string(string_eater_id, char const*);
void delete_string_eater(string_eater_id);
Пишем C++-класс, являющийся оберткой для этих трех функций:
class string_eater {
string_eater_id id_;
public:
string_eater() id_(create_string_eater()) {}
~string_eater() { delete_string_eater(id_); }
void eat(std::string const& s) { eat_string(id_, s.c_str()); }
};
Является ли написание класса
string_eater реализацией какого-либо паттерна проектирования, и если да, то какого?