Mam zestaw klas, które implementują te same metody biznesowe. Planuję używać CRTP zamiast wirtualnej wysyłki ze względu na wydajność. Chciałbym jednak zachować wygodę kodowania dla pojedynczego interfejsu, który pochodzi z dziedziczenia i metod wirtualnych.Używanie CRTP z interfejsem
Czy można założyć, że moje wyspecjalizowane klasy dziedziczą z klasy abstrakcji szablonowej, która używa CRTP do przechowywania wspólnego kodu, a także dziedziczy po czystej klasie wirtualnej, aby móc tworzyć instancje każdego typu, ale mieć kod klienta zależy tylko od interfejsu? Co jeszcze ważniejsze, w jaki sposób mogę użyć CRTP, aby zapewnić pojedynczy interfejs do kodu klienta, mając jednocześnie wiele implementacji?
Więc jeśli planujesz byłaby kod ze względów wydajności Metoda abstrakcyjna nie jest dobrym pomysłem ... użyć CRTP uniknąć wirtualny wysyłkę, która jest dlaczego jego wspólną alternatywną nazwą jest statyczny polimorfizm. Oczywiście z syntaktycznego punktu widzenia nikt nie może powstrzymać cię przed zrobieniem tego, ale IMHO musisz przemyśleć to przez ... –
Publiczne metody nie byłyby w interfejsie, tylko w specjalizacjach. – ruipacheco