2013-04-04 31 views
0

我有一些對象集合(類MyObject)。每個對象由名爲type,instance,name的三個字符串標識。這些字符串我會撥打description。 我想創建一個機制,以基於description或完整description的部分獲取正確的對象。 如果我有以下對象:如何創建一些查詢機制 - 面向對象設計

Object 1. has type:myType; instance:myInstance; name:myName; 
Object 2. has type:myType; instance:myInstance2; name:myName2; 
Object 3. has type:myType2; instance:myInstance3; name:myName3; 
Object 4. has type:myType2; instance:myInstance3; name:myName4; 

我想這

get("myType") returns objects 1. and 2. 
get("myType").get("myInstance") returns object 1. 
get("myType2").get("myInstance3") returns objects 3. and 4. 
get("myType2").get("myInstance3").get("myName4") returns object 4. 

我的同事解釋我如何做到這一點,但我不明白的是:| 他擬定了如下圖

diagram draft

如果這圖上是MyObject地方?應該MyObject聚合A,B,C或反之亦然?

回答

0

你的同事的圖看起來只是這一呼籲的說明:

get("myType2").get("myInstance3").get("myName4") returns object 4. 

如果我們重寫,那麼它看起來有點像...

A = get("myType2"); 
B = A.get("myInstance3"); 
C = B.get("myName4"); 

但無論A/B/C是,它的類需要能夠保存多個項目,所以它聽起來像你需要一個MyObjectCollection類,併爲它實現get()(它返回一個MyObjectCollection <>)。

MyObjectCollection<MyObject> A = get("myType2"); 
MyObjectCollection<MyObject> B = A.get("myInstance3") 
MyObjectCollection<MyObject> C = B.get("myName4") 

以及c將包含爲MyObject 4.