Дизайн мне кажется очень разумным.
Глядя на диаграмму вашего класса, я смог получить четкое представление о каждом участнике. Я думаю, что это хороший знак - это означает, что есть четкое разделение ролей.
Тот факт, что CrudDao
расширяет ReadOnlyDao
, имеет для меня смысл. Операции чтения-записи - это расширенный набор операций только для чтения; если вы можете сделать что-то с интерфейсом только для чтения, вы должны быть в состоянии сделать это и с интерфейсом чтения-записи - это именно то, что достигается наследованием.