【发布时间】:2013-08-02 18:11:23
【问题描述】:
我有一个 Quad 类(用于我的精灵),在这个类中有用于改变所述 Quad 状态的各种变量。所以我可以像这样简单地制作一个精灵:
Quad hero = new Quad();
我有一个 Resource 类,我的所有精灵都在其中保存/创建。
我有一个 Main 类,它 不是 Resource 的相邻类,因此为了避免违反 Demeter 的规则,我在Resource 类(与 Main 相邻)。
但是,由于需要访问的变量太多,有没有更好的方法为每个变量创建 getter/setter?
我想做一些事情,比如能够编写一个简单地返回 Quad 的 getter,这样我就可以在 Main 类中访问它的变量。所以在 Resource 中,我会有这样的东西:
public Quad getQuad(Quad quad){
return quad;
}
然后在我的 Main 类中,我想要这样的东西:('res' 是我的 Resouce 类的对象)
res.getQuad(hero).variable;
我意识到上述方法行不通 - 这只是我想要实现的目标的一个示例。
或者也许我可以在 getter 本身中放入一些代码,让我可以访问它的任何变量而不是特定变量。
这只是为了让我不必通过这样做来破坏 Demeter,我在很多情况下都确信这是不是好的做法:
res.hero.variable;
如果有任何帮助,将不胜感激。
【问题讨论】:
-
"打破Demeter的规则"?
-
老实说,无法理解这个问题,它本可以以更好的方式呈现,或者可能只是我。有没有其他人有这种感觉?
标签: java variables getter getter-setter law-of-demeter