This might be on the "discussy" side, but I would really like to hear your view on this.

Previously I have often written data access classes that handled both reading and writing, which often led to poor naming, like FooIoHandler etc. The rule of thumb that classes that are hard to name probably are poorly designed suggests that this is not a good solution.

So, I have recently started splitting the data access into FooWriter and FooReader, which leads to nicer names and gives some additional flexibility, but at the same time I kind of like keeping it together, if the classes are not to big.

Is a reader/writer separation a better design, or should I combine them? If I should combine them, what the heck should I name the class?

Thanks /Erik