Most principles and patterns in object oriented programming stem from a few key ideas.

After 10+ years of teaching OOP I have realized that everything is based on a few fundamental ideas. That's why I'm writing this book.

BUY THE BOOK

🥇 Top 1 on LeanPub. Top 10 for months.

The world is full of OOP so understanding it deeply is profoundly valuable.

After 3 years of writing I have realized that the search for the object oriented way is a path that leads to functional programming. This book illuminates that path.

Since I am not trying to sell you any certifications I am not afraid to show how these different ideas align and overlap.

Join me in my journey to the center of OOP. One last time.

Early bird SALE ending soon!

I am a Senior Lecturer at Uppsala University (Sweden) with a Ph.D. in Information Systems. You might know me from my YouTube channel (160K+ subs) on programming.

This is the book I wish I had been given. I use it to teach object orientation to university students. On bachelor and master levels.

Here's what you get:

  • No arbitrary rules. Building from fundamentals.
  • When to use Subtypes over Objects
  • When to use Dependency Injection over Dependency Instantiation
  • When to use Interfaces over Inheritance
  • When to use Composition over Inheritance
  • How Strategies, Delegates, and Higher Order Functions solve the same problem.
  • How Bridge is like a Strategy in a Strategy.
  • How Dependency Injection and Replacing Conditionals With Polymorphism leads to Dependency Inversion.
  • How Observables are like Events, Observers like Delegates, and how they relate to Asynchronous Programming and Reactive Programming.
  • How Iterators are like Enumerables, Streams, and Infinite Lists.
  • How Visitor pattern is like Pattern Matching.
  • How Variance is key to understanding the Liskov Substitution Principle and how it allows for advanced object oriented design.
  • A comprehensive guide to OOP.

"This is one of the best pieces of advice [...]. In a project, there was a strategy pattern that was misunderstood by the development team, and I couldn't understand why. I then realized that there was only one data variation from one concrete strategy to another. Since then, I've been very careful when using polymorphism to replace conditions."

"I've been coding for years now, almost a decade, and I've never seen one explain these concepts as well as you do [...] and I love how you 'abstract' some points to make it clearer."

"Best explanation of in-, co- and contravariance ever. Finally, I get the concept after using it for so many years without fully understanding it."

"He explains in the best possible way and its quite unlikely that someone can do better."

"Wow! Such a clean and logical delivery!"

"Crazy explanation, bro! No one will forget this concept now."

"I name you the OOP maestro 🥂"

"Cannot wait to read this book. You bring so many interesting and thought-provoking ideas that are worth exploring, in a clear way.

BUY THE BOOK

🥇 Top 1 on LeanPub. Top 10 for months.

Don't wait! Price increase coming soon!

© 2024–20XX Christopher Okhravi

By using this site you accept our usage of Google Analytics.