Um bom livro para aprender a teoria da orientação a objetos (OO). Cumpre sua premissa de ensinar a teoria e possui uma boa quantidade de exemplos. Entretanto, não é, de longe, um livro perfeito.
Primeiro, trata-se de um livro datado. Principalmente do capítulo 11 em diante, o autor passa a se preocupar com necessidades da época em que foi escrito. De todo modo são capítulos úteis, mas que utilizam tecnologias que foram substituídas ou são menos usadas atualmente. A parte que trata realmente da abordagem teórica da OO se estende apenas até o capítulo 9.
Em relação aos capítulos 1 ao 9, que apresentam a teoria, o autor ensina bem os conceitos, mas repete muitos exemplos e explicações, de forma que isso chega a incomodar. Algumas ilustrações, principalmente as iniciais, são quase inúteis em vista de sua simplicidade, e certas aplicações são simplesmente fracas por não se aprofundarem e acabam se tornando genéricas demais. Da mesma forma, os capítulos que tratam do design são, por muitas vezes, genéricos e repetitivos. Acredito que a falta da aplicação prática dos conceitos, mesmo com os exemplos apresentados, prejudica a interpretação de muitos dos detalhes de design, que acabam ficando vagos.
Entre os pontos fortes, o exemplo do programa para o jogo Blackjack foi muito bom. Permitiu enxergar claramente o fluxo do processo que foi descrito nos capítulos de design. Infelizmente foi a única grande aplicação prática do livro.
Além disso, a utilização excessiva de outros livros para explicações e exemplos é cansativa. Ao mesmo tempo que é importante utilizar outras fontes para validar o conteúdo, é também necessário originalidade, que por muitas vezes falta.
Uma crítica geral que dou a livros e explicações sobre orientação a objetos, é o exemplo clássico de mamíferos, cachorros e gatos, que é bem simples de seguir, mas é tão abstrato que é, por muitas vezes, difícil de aplicar em sistemas reais. Talvez seguir esse exemplo com um outro que mostra melhor uma aplicação real permita melhores conexões do assunto com a realidade.
Em suma, um bom livro que, mesmo com seus problemas, consegue entregar o que promete e ensinar bem os conceitos de orientação a objetos. Ótimo para quem quer entender a teoria sem mergulhar profundamente em código, mas fica o aviso de que é repetitivo, datado e frequentemente genérico.