我有一个Quad类(用于我的精灵),并且在这个类中有用于改变所述 Quad 状态的各种变量。所以我可以简单地制作一个像这样的精灵:
Quad hero = new Quad();
我有一个资源类,我的所有精灵都被保存/创建。
我有一个Main类,它不是Resource 的相邻类,因此为了避免违反 Demeter 的规则,我在Resource类(它是Main的邻居)中创建了各种 getter/setter。
但是,由于我有很多变量需要访问,是否有更好的方法为每个变量创建 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;
将不胜感激任何帮助。