Ich versuche, objektorientiertes Design auszusprechen und bin auf ein Problem gestoßen, das ich merkwürdig finde, und ich bin mir einer guten Strategie nicht sicher, meine zu strukturieren Daten.Java Datenstruktur Design für Daten verschiedener Typen durch Zeitskala dargestellt
Die API Ich bin Zugreifen auf Daten bestimmt:
<pair_name> = pair name
a = ask array(<price>, <whole lot volume>, <lot volume>),
b = bid array(<price>, <whole lot volume>, <lot volume>),
c = last trade closed array(<price>, <lot volume>),
v = volume array(<today>, <last 24 hours>),
p = volume weighted average price array(<today>, <last 24 hours>),
t = number of trades array(<today>, <last 24 hours>),
l = low array(<today>, <last 24 hours>),
h = high array(<today>, <last 24 hours>),
o = today's opening price
Quelle: https://www.kraken.com/help/api#get-tradable-pairs
Das Bit Ich habe Probleme beim Ausarbeiten wie die array(<today>, <last 24 hours>)
Bits zu handhaben sind. Ich hätte gerne eine Struktur, die dem entspricht, in die jeder passt. Ich würde sie in Volume, TotalTrades und HighLow-Objekte (oder so ähnlich) unterscheiden, aber der Typ für heute/letzten 24 Stunden variiert (manchmal int
manchmal double
).
Ich dachte, ich würde versuchen, entweder das:
public abstract class DayTimeFrameData {
protected Object today;
protected Object lastTwentyFourHours;
}
oder etwas ähnliches:
public interface DayTimeFrameData {
Object today = null;
Object lastTwentyFourHours = null;
}
Dann erstreckt/für jeden Datentyp einen von denen zu implementieren. Aber ich bin mir nicht sicher, ob diese überhaupt Sinn machen.
Kann mir jemand einige Hinweise geben, wie man etwas so strukturiert, bitte?
Was Sie beschreiben, ist keine API, es ist eine Reihe von Daten. Die API würde von den Datennutzern gesteuert werden. IOW, für OO-Design müssen Sie überlegen, wie die Daten verwendet werden. – Arkadiy
Ha, ok, ich habe diese Unterscheidung nicht gemacht.Der Titel der Seite, von der ich es bekommen habe, war "API: Erfahren Sie mehr über unsere API". In Bezug darauf, wie ich es verwenden könnte, möchte ich vielleicht einen Knopf, der alle Daten zwischen den heutigen und den letzten 24 Stunden wechselt. Ich habe kein Problem, es zu entwickeln, das ist mehr für mein Verständnis von OOP. – Sarcoma
Aha! Dann ist das erste, was mir in den Sinn kommt, etwas in der Linie von 'interface AccumulatedData' und' interface AccumulaedDataSource {AccumulatedData getDataFor (PeriodType period);} '. Dann bauen Sie Ihre Ansicht um 'AccumulatedData' – Arkadiy