2014-06-09 56 views
1

我有一個API,其中查詢和實體模型的表示由同一個類表示。簡化版本:在Java中使用OOP實現CQRS

class Model { 
    private Long id; 
    private Double a; 
    private Double b; 
    ... 
} 

問題是這些屬性一起作爲查詢對象是沒有意義的。它一共不需要id,而a,b是排他性的。如果沒有適當的分離,代碼很難理解。我的計劃涉及爲每種類型的密鑰創建單獨的查詢類別:AB

讓我擔心的是,爲了避免使用instanceof(假設所有查詢類型都知道的任何代碼),我需要在查詢對象中實現所有橫切關注點。例如,映射到WHERE子句作爲實際SQL查詢的一部分。

爲了避免客戶端對實現具有隱式依賴性,我最初的計劃是創建服務器端類,以擴展每個POJO AB並在那裏實現細節。這需要額外的映射層從A映射到其他一些將執行sqlQuery()操作(簡化事項)的類。

問題:既然這看起來夠複雜,那麼這種問題是否存在一些標準方法?參考,模式的歡迎。

+0

不能完全明白這個問題,你能提供一個更具體的例子嗎?在你的域名中,a和b實際上是雙打的嗎? – Sudarshan

回答