Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建一些查询机制-面向对象设计_Java_Oop - Fatal编程技术网

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

Java 如何创建一些查询机制-面向对象设计,java,oop,Java,Oop,我有一些对象集(类MyObject)。每个对象由三个字符串标识,分别命名为类型,实例,名称。我将调用这些字符串description。 我想创建一种机制,根据说明的一部分或完整的说明获取适当的对象。 如果我有以下对象: Object 1. has type:myType; instance:myInstance; name:myName; Object 2. has type:myType; instance:myInstance2; name:myName2; Object 3. has ty

我有一些对象集(类MyObject)。每个对象由三个字符串标识,分别命名为
类型
实例
名称
。我将调用这些字符串
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.
我的同事向我解释了如何实现这一点,但我不理解:| 他画了下面的图表


图中的哪个位置是MyObject的位置?是否应该将MyObject聚合为
A
B
C
,或者反之亦然?

您同事的图表似乎只是此调用的一个示例:

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 A=get(“myType2”);
MyObjectCollection B=A.get(“myInstance3”)
MyObjectCollection C=B.get(“myName4”)
然后C将包含MyObject 4

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