Если интересен код с ооп и паттернами ради ооп и паттернов - взгляните на
https://github.com/EnterpriseQualityCoding/FizzBuz... и сравните с тем, что получится, если решать задачу в лоб. Потом спросите себя, а нафига козе баян? И задавайте этот вопрос себе постоянно, чтобы научиться находить баланс между простотой и гибкостью.
По книгам: Зандстра, потом PoEAA Фаулера, потом DDD Эванса. Читаем, применяем, думаем "нафига", и так до просветления :)
Удачи)