Je suis en train d'étudier la conception orientée objet et j'ai rencontré un problème que je trouve bizarre, et je ne suis pas sûr d'une bonne stratégie pour structurer mon Les données.Java structure de données pour les données de différents types représentés par l'échelle de temps
L'API Je suis fournit des données comme accédant suivantes:
<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
source: https://www.kraken.com/help/api#get-tradable-pairs
Le bit que je vais avoir du mal à travailler sur la façon de gérer sont les array(<today>, <last 24 hours>)
morceaux. J'aimerais avoir une structure conforme à celle dans laquelle chacun s'intègre. Je les séparerais dans les objets Volume, TotalTrades et HighLow (ou quelque chose comme ça) mais le type pour aujourd'hui/les dernières 24 heures varie (parfois int
parfois double
).
Je pensais que je vais essayer soit ceci:
public abstract class DayTimeFrameData {
protected Object today;
protected Object lastTwentyFourHours;
}
ou quelque chose comme ceci:
public interface DayTimeFrameData {
Object today = null;
Object lastTwentyFourHours = null;
}
Puis extension/mise en œuvre de l'un de ceux pour chaque type de données. Mais je ne suis pas sûr que cela ait du sens. Est-ce que quelqu'un peut m'offrir quelques conseils pour structurer quelque chose comme ça, s'il vous plaît?
Ce que vous décrivez n'est pas une API, c'est un ensemble de données. L'API serait pilotée par les utilisateurs de données. IOW, pour la conception OO, vous devez considérer comment les données vont être utilisées. – Arkadiy
Ha, ok je n'ai pas fait cette distinction.Le titre de la page que je l'ai eu était "API: En savoir plus sur notre API". En ce qui concerne la façon dont je pourrais l'utiliser, je pourrais vouloir un bouton qui permuterait toutes les données entre aujourd'hui et les dernières 24 heures. Je n'ai aucun problème à l'ingénierie, c'est plus pour ma compréhension de la POO. – Sarcoma
Aha! Ensuite, la première chose qui vient à l'esprit est quelque chose le long de la ligne de 'interface AccumulatedData' et' interface AccumulaedDataSource {AccumulatedData getDataFor (Période PeriodType);} '. Puis construisez votre vue autour de 'AccumulatedData' – Arkadiy