Will man z.B. eine neue Karte hinzufügen, so muss man _jede_ andere Karte ändern.
Aus praktischen Gründen würde ich das auch in eine separate Methode auslagern, zum Beispiel in die Basisklasse.
Als statische Methode(n) in die Basisklasse, ja. Damit kommt man dem multiple dispatch schön näher. ;)
Auch wenn sich mir noch nicht so ganz erschließt, warum die Basisklasse einer Karte das Vergleichen von Karten als Funktionalität beinhalten sollte.