2009-05-12 5 views
2

Ich habe eine Struktur mit dem Namen WaveSize, die sowohl eine Anzahl von Samples als auch eine Zeitspanne darstellt, aber ich verwende diese Struktur auch, um eine Position oder einen Offset innerhalb einer Welle darzustellen.Wie wird eine Struktur benannt, die sowohl eine Größe als auch eine Position darstellt?

Während es ziemlich üblich ist, sowohl Größen als auch Positionen in einem Koordinatensystem mit einem Vector2d-Typ darzustellen, kann ich einen guten Namen nicht abstrakt genug finden, um Wellenlängen und Wellenpositionen/Offsets darzustellen.

finde ich seltsam so etwas wie zu sehen:

public WaveSize Size { get; } 
public WaveSize Offset { get; } 

ich lieber mit einem guten Namen kommen würde als leere Klassen erstellen oder mit ‚verwenden‘.

Alle Vorschläge werden sehr geschätzt. Danke im Voraus.

EDIT: Als Reed Copsey & Marc Gravel vorgeschlagen, es macht sehr viel Sinn, zwei verschiedene Klassen zu haben, da sie zwei verschiedene Konzepte sind, so dass alle Ähnlichkeiten im Code als bloße Zufälle gesehen werden sollten.

+0

"zwei verschiedene Klassen haben" - tatsächlich kann dies einer der seltenen Fälle sein, in denen struct die richtige Wahl ist. –

+0

Sie sind eigentlich Strukturen, aber danke, dass Sie darauf hingewiesen haben: – Trap

Antwort

3

Ich würde zwei getrennte Strukturen haben, und machen Konvertierungen zwischen ihnen leicht.

Sie versuchen hier zwei Konzepte darzustellen, eines für die Position und eines für die Größe. Da dies zwei konzeptionell unterschiedliche Ideen sind, würde ich sie zu zwei Strukturen machen.

Ich stimme auch mit Marc Gravell's answer in Bezug auf die Point/Size-Strukturen des BCL. Ich denke, sie sind ein gutes Modell zu folgen.

+0

Ich stimme dir zu, dass dies zwei verschiedene Konzepte sind und dementsprechend behandelt werden sollten. – Trap

0

Könnten Sie eine Struktur haben, die einfach Wave heißt und Größe und Offset dann gut in den allgemeineren Namen passen würden? Ich hoffe, Sie haben noch keine Wave-Struktur :)

1

WaveVector?

+0

In Bezug auf die Physik gibt ein Kraftvektor die Magnitude (Größe) und die Richtung (Position) der Kraft an. –

0

Ist nicht der übliche Name für den 'Offset' die Phasenverschiebung?

Ich würde wahrscheinlich mit WaveProperties gehen, wirklich.

3

Sie könnten mit den Winforms Point und Size Strukturen vergleichen ... sie entschieden, dass, auch wenn sie ähnlich sind, um sie getrennt zu halten. Es macht Sinn, in der algebraischen Sinn:

Point - Point = Size 
Point + Size = Point 
Size + Size = Size 
Point + Piont = ???? error (no defined operator) 

etc

+0

Ich bin wirklich versucht, dies zu tun, aber jede Methode zu duplizieren, tut ein wenig weh ... – Trap