Java:创建特定类
我有一个这样构造的类:Java:创建特定类,java,class,Java,Class,我有一个这样构造的类: public class Creature { protected final AI ai; // ...about 10 other objects public Creature (CreatureType type, int x, int y) { ai = new AI (); // some other code } // ... many methods } 我的类AI将是这
public class Creature
{
protected final AI ai;
// ...about 10 other objects
public Creature (CreatureType type, int x, int y)
{
ai = new AI ();
// some other code
}
// ... many methods
}
我的类AI将是这种生物的人工智能。我希望它能够像在里面一样完全访问该生物对象。我怎样才能做到这一点?通过某种巧妙的方式来继承它?使AI成为生物的内部类将使AI能够访问生物的实例变量
请参阅:您可以通过以下几种方式完成:
- 包含:这就是您所做的,只是您应该将局部变量和类变量传递给AI方法(分离关注点等)。这也是我最喜欢的方法
- 继承:只有在类之间存在关系时才有意义
- 内部类:如果AI只与
生物相关,并且不必直接与其他类交互,那么内部类是有意义的
- 将类放在同一个包中,并将相关的访问修饰符设置为包私有
new
)
我看到你在评论中加了一句:“我的类AI将处理许多生物的许多操作”。为了不让一个庞大的AI类与许多生物紧密耦合,我将创建一个AI接口和一个AIService,它将公开一个支持操作的接口。该服务将负责调用正确的AI实现(每种生物类型)来处理操作。您可以将其放在同一个包中,并使其成为本地包。我认为使用继承不是一个好主意。我会喜欢在开始时添加类似于
c.
的内容来显示它就是生物。你的意思是以这样的方式访问这些字段:creative.field
<代码>生物将是对调用AI
类的对象的引用。但是。。。丑陋…也许,但它很简单,而且很有效。它说我指的是另一个物体,它是一个生物。是的,你是对的,但我的AI类将处理许多生物的许多操作,因此会有对生物的恐惧。
调用。