I am designing a class where some methods won't cause any harm if they are exposed as public. But they can be private as well, since they will be used only from the same class in my project.
Making them public has the following advantages:
- Unit Testable without the need of accessors.
- Flexibility.
Making them private has the following advantages:
- Public documentation simplification.
- Some unknown bugs aren't exposed.
Which are the general guidelines in this case?