Back to training

Modern Object Oriented Design


This 2-day hands-on workshop will guide you through the important details of developing flexible and easier to change object oriented code. You will discover and apply best practices for a faster development and for a code easier to be changed when needed. Also, you will be able to apply the acquired knowledge in production immediately.

Who should attend



  • Learn and practice the fundamentals of Object Oriented Design
  • Improve one’s knowledge of Design with objects
  • Learn best practices with Object Oriented Design

Course Outline

  • Intro. What is Object Oriented Design. More about messages, less about objects.
  • Encapsulation. How much it’s needed.
  • Exercise: use Encapsulation right
  • Inheritance. When (not) to use it. 
  • Polymorphism. Patterns
  • Liskov Substitution Principle
  • Design Objects, not Classes.
  • Stateless. Stateful.
  • Immutability
  • Objects. Do and Don’t.
  • Exercise: Define Objects, APIs, Contracts
  • Functional Programming and Object Oriented Design
  • Exercise: Object Oriented Design with Lambdas.
  • Demo: Strategy Pattern with Lambdas.
  • Dependency Injection.
  • Exercise: Dependency Injection used well.
  • Testing Objects.
  • Exercise: How to write good tests for objects.
  • Final debriefing. What’s next?


  • Know at least one programming language

Course Delivery

  • 40% hands-on coding
  • 30% discussing on code and understanding evolution options
  • 30% lectures
  • Demo from trainer
  • Continuous Feedback. Helping participants unblock at any moment during the exercises

Practical details

  • Duration: 2 days, from 09:00 to 17:30
  • Training language: English / Romanian / French

What’s next?

  • Schedule a few Hands-on Training on the Job sessions with the trainer so that you will apply the concepts in production


Need a customized workshop? Contact us and we’ll adapt the content as required.