如何创建一些查询机制 - 面向对象的设计

时间:2013-04-04 22:34:40

标签: java oop

我有一些对象(MyObject类)。每个对象由三个名为typeinstancename的字符串标识。这些字符串我将调用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汇总ABC或反之亦然?

1 个答案:

答案 0 :(得分: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<> class,并为它实现get()(返回MyObjectCollection<>)。

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

然后C将包含MyObject 4.