In C++ für Embedded-Systeme kann das Adapter Pattern durch Vererbung oder Komposition umgesetzt werden. Hier ein einfaches Beispiel:
// Ziel-Interface
class ISensor {
public:
virtual int readValue() = 0;
};
// Bestehende Klasse mit inkompatibler Schnittstelle
class LegacyTempSensor {
public:
int getTemperature();
};
// Adapter-Klasse
class TempSensorAdapter : public ISensor {
private:
LegacyTempSensor* sensor;
public:
TempSensorAdapter(LegacyTempSensor* s) : sensor(s) {}
int readValue() override {
return sensor->getTemperature();
}
};
Mit dem Adapter Pattern kann man also bestehende Treiberklassen an neue Interfaces anpassen – eine gängige Praxis in Embedded-Architekturen.