Principles of Object-Oriented Programming

Book image

Livro digital

Título:
Principles of Object-Oriented Programming

Autor:
Stephen Wong, Dung Nguyen, Mark Husband

Categoria:
Tecnologia > Backend

Doador:
Raffaello D. N.

Sinopse:
Most programmers learn objects and classes, then struggle to design systems that flex gracefully under change. This book tackles that gap head-on, starting not with syntax lists but with the unifying concept of abstraction — then systematically showing how polymorphism, inheritance, and composition transform from buzzwords into precise engineering tools through hands-on examples like the Ballworld simulation and immutable list structures. Across eight chapters, readers build a complete mental model of object-oriented design. Early sections ground the reader in type abstraction, UML, and the is-a/has-a dichotomy. The core curriculum then unfolds through design patterns treated not as recipes but as consequences of sound abstraction: the Union pattern for polymorphism, Composite and Interpreter for recursive data, Visitor for decoupled algorithms, Abstract Factory for frameworks, and the State pattern for mutable structures. Later chapters extend into GUI programming with Strategy and Command patterns, while a lab chapter on DrJava and JUnit reinforces disciplined testing. What distinguishes this text is its refusal to separate OOP theory from software craftsmanship. Students are trained to think in terms of variant and invariant behaviors, applying a formal methodology called FOODM (Fundamental Object-Oriented Design Methodology) to derive implementations from abstractions. The progression from immutable lists through mutable binary trees culminates in a working Restricted Access Container framework — equipping the reader to design composable, maintainable object-oriented systems from first principles.

Livro digital disponível gratuitamente!
Clique no botão abaixo para receber este livro.
Seja o primeiro a receber este livro
Comprar na Amazon
Esse site salva cookies para uma melhor experiência de usuário. Saiba mais lendo nossaPolítica de Privacidade.