liveBook · Manning

Object-oriented programming

Object-oriented programming is a programming paradigm that organizes software around objects combining state and behavior, commonly using encapsulation, classes, inheritance, or polymorphism.

How 9 Manning books explain it

Functional Design and Architecture: Examples in Haskell

A programming paradigm that organizes software around objects combining state with behavior and supports mechanisms such as encapsulation, inheritance, and polymorphism.

How it is used
Guides decomposition of large applications into lower-risk, maintainable structures and design decisions.
How deep it goes
Explains patterns, contracts, SOLID, substitution failures, and coupling, while contrasting functional alternatives rather than detailing object internals.
Examples
Uses a Kelvin-to-Celsius thermometer adapter and a lamp interface whose implementation violates Liskov substitution.
What you can do after
Evaluate/understand object-oriented design decisions using patterns, contracts, SOLID principles, low coupling, and high cohesion.

Read how Functional Design and Architecture: Examples in Haskell explains object-oriented programming →

Data-Oriented Programming: Reduce software complexity

A programming paradigm in which programs are composed from objects that combine state with methods for accessing and manipulating that state.

How it is used
Frames OOP as a design choice whose object structure can increase the difficulty of understanding production systems.
How deep it goes
Explains object composition, class relationships, mutability, serialization, and hierarchies, but does not develop language-specific internals.
Examples
Uses a library-management class diagram and repeated JSON REST endpoint classes to expose relationship and serialization costs.
What you can do after
Evaluate OOP designs by tracing relationships, mutable state, serialization work, and class-hierarchy complexity.

Read how Data-Oriented Programming: Reduce software complexity explains object-oriented programming →

Python Workout, Second Edition

Object-oriented programming is a programming paradigm that organizes software around objects that combine state and behavior.

How it is used
Organizes related data and behavior into maintainable Python objects with domain-specific interfaces.
How deep it goes
Defines classes, instances, methods, attributes, interfaces, inheritance, composition, and public-data tradeoffs through implementation exercises.
Examples
Uses student grade averages, ScoreList, and a Zoo class combining object-oriented methods with list comprehensions and generator expressions.
What you can do after
Build and maintain Python classes using methods, attributes, composition, inheritance, and documented interfaces.

Read how Python Workout, Second Edition explains object-oriented programming →

The Well-Grounded Rubyist, Fourth Edition

Object-oriented programming is a programming paradigm that organizes computation around objects that encapsulate data and perform actions in response to requests.

How it is used
Organizes calculations, data manipulation, and input/output as requests to objects.
How deep it goes
Defines the approach through a generic Ruby object and its method, then connects it to design; defers in-depth treatment of classes.
Examples
Uses a talking generic object and a cargo hold whose `unload` method delegates to a stack operation.
What you can do after
Build it from scratch by creating a Ruby object, defining and calling its method, and choosing names that express an object's purpose.

Read how The Well-Grounded Rubyist, Fourth Edition explains object-oriented programming →

Python Workout: 50 ten-minute exercises

Object-oriented programming is a programming paradigm that organizes software around objects defined by classes containing state and behavior.

How it is used
Organizes related data and behavior into domain-specific objects instead of separating nouns from verbs procedurally.
How deep it goes
Defines classes, objects, methods, and selected Python features through a score example and Zoo exercises.
Examples
Uses procedural and ScoreList grade calculations plus Zoo filtering, transfer, and keyword-query exercises.
What you can do after
Build Python classes that combine stored data with methods and extend them through practical object-oriented exercises.

Read how Python Workout: 50 ten-minute exercises explains object-oriented programming →

Go in Practice, Second Edition

Object-oriented programming is a programming paradigm that organizes software around objects combining data with operations and commonly uses abstraction, inheritance, and polymorphism.

How it is used
Applies object-oriented ideas to Go development through structs, interfaces, and methods.
How deep it goes
Explains the model through Java and Go listings, then demonstrates compile-time interface checking.
Examples
Uses Animal, Cat, Dog, and Llama examples to contrast inheritance with interface relationships.
What you can do after
Apply it via Go structs, methods, and interfaces to model object-like behavior without explicit inheritance.

Read how Go in Practice, Second Edition explains object-oriented programming →

The Art of Unit Testing 3e

A programming paradigm that structures software around objects encapsulating state and behavior.

How it is used
Frames object-oriented design as a JavaScript paradigm and applies it to dependency injection and mock-based interaction testing.
How deep it goes
Treats the style through design choices, dependency injection, and mocking rather than presenting a language-independent implementation theory.
Examples
Uses TypeScript object-oriented examples and discusses dependency-injection and mock-object patterns.
What you can do after
Evaluate whether object-oriented or functional design better fits a team and apply shared patterns across both styles.

Read how The Art of Unit Testing 3e explains object-oriented programming →

Python How-To

Object-oriented programming is a programming paradigm that organizes software around objects containing data and related behavior.

How it is used
Organizes Python programs around objects, particularly custom-class instances that combine data with functionality.
How deep it goes
Defines classes, instances, attributes, and methods, then demonstrates object use without exhaustively covering Python’s object model.
Examples
Uses compiled regular expressions, Pattern methods, and direct re-module function calls to contrast object-oriented and functional styles.
What you can do after
Apply it via Python’s re module by compiling a Pattern object and invoking its attributes and search methods.

Read how Python How-To explains object-oriented programming →

The Well-Grounded Python Developer: How the pros use Python and Flask

Object-oriented programming is a programming paradigm that organizes software around objects containing state and behavior.

How it is used
Organizes state and the functions acting on it when separate stateful contexts become difficult to manage.
How deep it goes
Explains encapsulation, classes, instances, inheritance, and composition as design mechanisms for reusable objects.
Examples
Uses stateful function calls, collection objects, and a cookie-cutter analogy to distinguish classes from instances.
What you can do after
Apply it by designing classes that combine data and methods, reuse features through inheritance, and extend designs through composition.

Read how The Well-Grounded Python Developer: How the pros use Python and Flask explains object-oriented programming →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.