2011-09-12 4 views
0

나는 거래 시스템을 테스트하기위한 간단한 금융 소프트웨어를 개발 중입니다. 자바를 사용하고 있습니다. 현재 야후에서 다운로드 한 데이터를 일부 데이터베이스 sqlite에 저장하고 있습니다. 내 견적 tabel의 표준 구조는 다음과 같습니다 주식 시세 클래스를 구현하는 가장 좋은 방법

symbol 
date 
open 
high 
low 
close 
volume 

지금 내가 특정 심볼의 내 데이터베이스 시세에서 검색하고 계산을 사용하여 메모리에 저장해야합니다. 그럼 데이터를 저장하는 가장 좋은 방법은 무엇입니까? 나는 그것이 최선의 방법입니다 확실하지 않다 ... 내가 약간의 의심을했습니다 ..

public class Quote { 

    String symbol; 
    List<String> date; 
    List<float> open; 
    List<float> high; 
    .. 
    List<float> close; 

    public getClose(){ ...} 
    etc. 
} 

을하지만 : 가 나는 인용 클래스의 객체 생각, 그래서 그것을 만들었습니다. 의 목록을 만들 수 있습니다. 개체입니까? 아니면 다른 옵션이 있을까요?

고마워요!

+0

프로그램을 디자인 할 때 절대적인 정답은 없습니다! –

+0

꽤 똑바로 보이며 올바른 방향을 향한 것처럼 보입니다. 당신이 특별히 염려하는 것은 무엇입니까? – crowne

답변

2

견적은 순간적으로 주가에 대한 가격이지만, 귀하의 질문에서 각 거래일 (즉, 견적이 아님)의 개폐/종가를 원하는 것으로 보입니다. 나는 하루 동안의 퍼포먼스를 표현하는 클래스를 만들 것이고, 주식은 그것에 대한 레퍼런스를 가질 수있다. 당신이 따옴표를 원하는 경우

class Stock { 
    String symbol; 
    List<Performance> history; 
} 

class Performance { 
    Calendar date; 
    double open; 
    double close; 
    double low; 
    double high; 
    double volume; 
} 

, 당신은 클래스를 만들 수 있습니다

class Quote { 
    Stock stock; 
    Calendar timestamp; 
    double value; 
} 

주식 시세는입니다 재고있는 배려하지 걸쳐 따옴표의 목록을 스트리밍 할 수 있습니다.

이것은 시작점 일뿐입니다. 도메인을 분석하지 않았고 모델을 올바르게 작성해야하는지 잘 모릅니다.

+0

그레이트 ... 예 ... 이것은 절대적으로 더 낫습니다 ... 클래스 주식 및 '실적'기록 목록 .. 예 예 예 .. 당신 말이 맞아요. – stighy

0

일반적으로 코드의 데이터 객체 레이어는 데이터베이스 구조를 반영합니다. 데이터 모델은 Quote 레코드 당 (날짜, 열림, 높음, 낮음, 닫음 ...) 중 하나만 가지고있는 것처럼 보입니다. 따라서 자바 클래스에 이러한 동일한 값에 대해 List이 있다는 것이 이상하게 보입니다.

메모리에 저장하는 것은 단지 묶음 (목록)을 따옴표로 분석하기 때문에 의심스러운 것으로 그냥 List<Quote>입니다.

+0

또한 견적에는 실제로 높고 낮은 가치가 있습니까? 나에게 시세는 주식의 현재 가치 일 뿐이며 "높음"과 "낮음"이라는 개념을 갖지는 않을 것이지만 나는 모국어를 정말로 모른다. – skaz

+0

데이터베이스를 미러링하는 "데이터 개체 계층"에 관해서는 완전히 비정규 화 된 데이터베이스를 가질 수 있으며 여전히 멋진 OO Java를 가질 수 있습니다. – SingleShot

관련 문제