【发布时间】:2013-11-13 00:59:46
【问题描述】:
我在 Eclipse 中使用 ObjectAid 为我最新的 Java 项目生成 UML 类图,我目前有 a handful of situations like this,我在其中有两个接口之间的依赖关系,以及其中一个接口的实现之一.这里,foo 是我正在使用的图形库。
在前面的示例中,FooCanvas 将ITexture 对象绘制到屏幕上,FooCanvas 及其接口ICanvas 都将ITexture 对象作为其方法的参数。
canvas类中导致这种依赖的方法如下:
void drawTexture(ITexture texture, float x, float y);
此外,我尝试使用 Java 的泛型对方法签名进行变体:
<T extends ITexture> void drawTexture(T texture, float x, float y);
这样的结果是一个类图,其中接口和实现类之间只有依赖关系,而画布对象对纹理没有依赖关系。我不确定这是否更理想。
接口和实现对另一个接口的依赖是预期的模式,还是典型的和/或可能将实现与其接口依赖“隔离”?还是泛型方法是理想的解决方案?
【问题讨论】:
-
ICanvas 和 ITexture 中公开了哪些方法?
-
也许你可以给我们更多的实现,否则就像我在回答中所说的那样很难判断。
-
在drawTexture中,使用了texture中的哪些方法?
标签: java architecture