Auch wenn C oder C++ keine Interfaces im klassischen Sinne wie Java oder C# kennen, kann man das ISP Principle mit Abstraktionen und Pointer-zu-Funktionen oder reinen abstrakten Klassen umsetzen:
Beispiel (C++):
class IButton {
public:
virtual void onPress() = 0;
};
class ILED {
public:
virtual void turnOn() = 0;
virtual void turnOff() = 0;
};
Statt eines „Mega-Interfaces“ wie:
class IDevice {
virtual void onPress();
virtual void turnOn();
virtual void turnOff();
};
trennt man die Verantwortlichkeiten auf – genau das ist der Kern vom ISP Principle.