Классика жанра -
Кент Бек. Там как раз то, что вы хотите. Но, как сказал предыдущий оратор, там все интуитивно понятно, и эта книга - лишнее тому подтверждение. Вопросы возникают при проектировании больших приложений. На этот счет могу посоветовать
эту книгу. Хоть примеры там написаны на C#, но из нее можно почерпнуть много интересных идей.