alt text http://img8.imageshack.us/img8/8558/classdiagram.png
简短描述:我怀疑AbstractCrudDaoImpl
是否实现了从同一父(ReadOnlyDao
)继承的接口和抽象类是否正常。
答案 0 :(得分:2)
除非AbsractReadOnlyDaoImpl
中定义的某个特殊方法不在ReadOnlyDao
接口中,否则该特定继承几乎没用。
否则,看起来很好。
答案 1 :(得分:2)
我会将名称 ReadOnlyDao 视为异常 - 它暗示任何实现它的东西也是只读的,这显然是不真实的。
我建议将其更改为 ReadableDao 。同上 AbstractReadableDaoImpl 。
答案 2 :(得分:1)
您可以将此问题分成两部分:
第一个问题很容易回答:是的,在你有一些只需要'核心'接口的类,而其他类处理更丰富的接口的情况下,这是有道理的。
我之前处理的另一个问题here。
答案 3 :(得分:1)
这个设计对我来说似乎很合理。
通过查看您的班级图,我能够清楚地了解每个参与者。我认为这是一个好兆头 - 这意味着角色明显分离。
CrudDao
延伸ReadOnlyDao
这一事实对我来说非常有意义。读写操作是只读操作的超集;如果你可以用只读接口做一些事情,你应该能够用读写接口来做 - 这正是继承所实现的。
答案 4 :(得分:1)
看起来很奇怪。 CrudDao应该访问ReadOnlyDao而不是AbstractReadOnlyDao吗?起初看起来很奇怪AbstractReadOnlyDao正在访问AbstractReadOnlyDaoImpl,但第二次看起来似乎没问题。