Most likely, yes, we can. I only had a separate DBOperationImpl because I intended DBOperation as an abstract class, to keep its meaning clear. However, this is not necessary and it may be much cleaner to flatten the hierarchy accordingly.