I really enjoyed following your answer and discussions here http://stackoverflow.com/questions/2814805/java-interfaces-implementation-naming-convention , but IMO there is one unsolved puzzle piece wrt that question, and I truly want to know you opinion about it.
What if I want to expose an API to the "outer world", and ship this API as e.g. a separate maven artifact: I don't want this API to have any implementation-specific dependencies, but I still have only a single implementation of the API? I don't see how to avoid some sort of "tautology" completely in this case... i.e. either Truck is a class and my api package will have dependencies on e.g. MaxTheDriver, or I have to split it into Interface Truck and .. well.. class TruckImpl that actually depends on MaxTheDriver :)
p.s. I know this belongs rather to the SO site, but I cannot comment there and I really wanted to know your opinion. Sorry if it's too offtopic for this place..