Die "Warteschlange" oder FIFO ist eine der häufigsten Datenstrukturen und hat native Implementierungen in vielen Sprachen und Frameworks. Es scheint jedoch wenig Konsens darüber zu bestehen, wie grundlegende Warteschlangenoperationen benannt werden sollten. Eine Umfrage von mehreren populären Sprachen zeigen:Terminologie/Namenskonvention für Warteschlangenoperationen/APIs?
- Python: put/get
- C#, Qt: enqueue/dequeue
- Rubin, C++ STD: push/pop
- Java: Hinzufügen/Entfernen
Wenn eine Warteschlange implementiert werden muss (z. B. in einer eingebetteten Plattform, die noch keine native Warteschlangenimplementierung hat), welche Namenskonvention wäre am besten? Enqueue/Dequeue scheint am deutlichsten zu sein, ist aber wortreich; put/get ist knapp, gibt jedoch keinen Hinweis auf den FIFO-Charakter der Operationen; Push/Pop scheint Stapeloperationen anstelle von Warteschlangenoperationen zu empfehlen.
Warum nicht einfach auch bish() bosh(): S TAOCP vielleicht die Referenz für die Streitbeilegung? –
Ich glaube, die beliebte Wahl ist 'enqueue (Element: Element): void' und' dequeue(): Element'. Allerdings tendiere ich dazu, so viele DS/Algorithm-Klassen wie möglich mit Dingen wie 'add (Element: Element)' und 'next(): Element' zu schreiben, da diese Methoden auch von anderen DS/Algorithmen gemeinsam genutzt werden. ** Auf diese Weise muss ein Implementer weniger über die Interna des DS Bescheid wissen und Sie können das Loskov Substitutionsprinzip von SOLID leichter anwenden **. Ansonsten brauchst du nur einen Adapter, aber ich bin dafür, die normative Konvention dafür zu ändern. – Cody