In C++ nutzt man Interfaces (abstrakte Basisklassen) und Factory-Klassen, die konkrete Implementierungen erzeugen. Beispiel:
class ISensor {
public:
virtual void read() = 0;
virtual ~ISensor() {}
};
class TempSensor : public ISensor {
public:
void read() override { /* Temperatur lesen */ }
};
class ISensorFactory {
public:
virtual ISensor* createSensor() = 0;
virtual ~ISensorFactory() {}
};
class ConcreteSensorFactory : public ISensorFactory {
public:
ISensor* createSensor() override {
return new TempSensor();
}
};