4

替代文字 http://img8.imageshack.us/img8/8558/classdiagram.png

简短描述:我怀疑AbstractCrudDaoImpl实现从同一个父级(ReadOnlyDao)继承的接口和抽象类是否正常。

4

5 回答 5

2

除非您定义了一些AbsractReadOnlyDaoImpl不在ReadOnlyDao接口中的特殊方法,否则该特定继承几乎没有用。

否则,看起来不错。

于 2009-12-25T16:39:39.987 回答
2

我会反对 ReadOnlyDao这个名字——它暗示任何实现它的东西也是只读的,这显然是不真实的。

我建议将其更改为ReadableDaoAbstractReadableDaoImpl同上。

于 2010-01-25T13:36:45.507 回答
1

你可以把这个问题一分为二:

  • 一个接口派生自另一个接口是否正常且有意义?
  • 同时拥有一个抽象类和一个模拟相同概念的接口是否正常?

第一个问题很容易回答:是的,这在您有一些只需要“核心”接口的类但其他类处理更丰富的接口的情况下是有意义的。

我之前在这里处理过的另一个问题。

于 2009-12-25T16:48:56.120 回答
1

这个设计对我来说似乎很合理。

通过查看您的班级图,我能够清楚地了解每个参与者。我认为这是一个好兆头——这意味着角色分工明确。

CrudDao扩展的事实ReadOnlyDao对我来说非常有意义。读写操作是只读操作的超集;如果你可以用只读接口做某事,你也应该可以用读写接口做这件事——这正是继承所实现的。

于 2009-12-25T21:04:23.273 回答
1

看起来很奇怪。CrudDao 是否应该访问 ReadOnlyDao 而不是 AbstractReadOnlyDao?起初,AbstractReadOnlyDao 访问 AbstractReadOnlyDaoImpl 似乎很奇怪,但第二次看似乎没问题。

于 2010-01-25T13:08:20.720 回答