我試圖敘述面向對象的設計,並遇到了一個我發現很奇怪的問題,而且我不確定構建我的好策略數據。針對時間尺度表示的不同類型數據的Java數據結構設計
我訪問提供的數據如下API:
<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
來源:https://www.kraken.com/help/api#get-tradable-pairs
我無法制定出如何處理該位是array(<today>, <last 24 hours>)
位。我想有一個符合這個每個適合的結構。我將它們分爲Volume,TotalTrades和HighLow對象(或類似的東西),但今天/過去24小時的類型會有所不同(有時int
有時爲double
)。
我想我會嘗試這兩種:
public abstract class DayTimeFrameData {
protected Object today;
protected Object lastTwentyFourHours;
}
或者是這樣的:
public interface DayTimeFrameData {
Object today = null;
Object lastTwentyFourHours = null;
}
然後擴展/實現這些每個數據類型之一。但我不確定這些是否有意義。
有人可以提供一些指導我如何去構建這樣的東西嗎?
你所描述的不是一個API,而是一組數據。 API將由數據用戶驅動。 IOW,對於OO設計,您需要考慮數據將如何使用。 – Arkadiy
哈,好吧,我沒有做出這樣的區分。我從中獲得的頁面標題是「API:瞭解我們的API」。就我如何使用它而言,我可能需要一個可以在今天和過去24小時之間切換所有數據的按鈕。我在工程方面沒有任何問題,這更多的是我對OOP的理解。 – Sarcoma
啊哈!然後,想到的第一件事就是沿着「接口cumulativeData」和「接口AccumulaedDataSource {cumulativeData getDataFor(PeriodType週期);}」行的東西。然後建立你''Accumulate''查看' – Arkadiy