Desdinova wrote:I tried to google on the 'implementation details' term, but can't really find what it means, or well, how to place it in this context. Could you explain the bold sentence?
Do you understand the rationale behind having public, protected and private access? The basic idea is that a class would provide an interface open to everyone as given by its public members. It would also provide an interface restricted to its subclasses as given by its protected members. The private members, on the other hand, exist as implementation detail. They are there so that the class can be properly implemented. If at any point a different way of implementing the class is decided on, these private members can be removed, changed, etc, at will.
Now, from your description, you are trying to treat entire classes as implementation detail. That is, the XMLpack and SpellCheck classes exist solely to help implement LP class. Therefore, if any point a different way of implementing the LP class is decided on, any and all members of the XMLpack and SpellCheck classes can be changed. In fact, you could even rename or remove these classes, and all the clients of your LP class should be ignorant of the changes.