In C implementierst du das Pattern meist mit einer strukturierten Funktionsschnittstelle und Funktionszeigern:
typedef struct {
bool (*save)(const Data* data);
bool (*load)(Data* data);
} DataRepository;
bool eeprom_save(const Data* data);
bool eeprom_load(Data* data);
DataRepository eepromRepo = {
.save = eeprom_save,
.load = eeprom_load
};