採用面向物件方法設計可擴展圖表元件。將圖表分解為三大核心可視元素:圖表區、座標軸、圖形繪製區,並定義通用介面 ChartWidget 統一位置、尺寸與繪製契約。
getX(), getY(), getWidth(), getHeight(), draw(Graphics2D) — 所有可視元素實作此介面。Plot 介面,註冊至圖表區。interface ChartWidget {
int getX(); int getY(); int getWidth(); int getHeight();
void draw(Graphics2D g2);
}
interface Scale { double toScreen(double value); double toValue(double screen); }
interface Axis extends ChartWidget {
Scale getScale(); void setRange(double min, double max);
}
interface Plot extends ChartWidget {
void setDataSeries(DataSeries ds); DataSeries getDataSeries();
}
class ChartArea implements ChartWidget {
private List axes = new ArrayList<>();
private List plots = new ArrayList<>();
// 佈局與繪製協調邏輯
}
此架構已應用於多個專案,支援即時監控儀表板、財務 K 線圖、科學數據視覺化等場景。