Object-Oriented Design

Nine modules covering classes, encapsulation, inheritance, polymorphism, composition, interfaces, design patterns, and SOLID principles — with Python and UML.

OOD Python 3 · UML 2.5 9 modules · EN / 中文
Module 01
Objects & Classes
Classes, objects, attributes, methods, and constructors — building your first domain model.
Module 02
Encapsulation
Access modifiers, @property, invariants, and designing clean public interfaces.
Module 03
Inheritance & Hierarchies
Class inheritance, method overriding, super(), and modelling generalisation hierarchies.
Module 04
Polymorphism
Method overriding, duck typing, type flexibility, and polymorphic design.
Module 05
Composition & Aggregation
Has-a relationships, object ownership, delegation, and when to prefer composition over inheritance.
Module 06
Interfaces & Contracts
Abstract base classes, protocols, contracts, and designing for substitutability.
Module 07
Design Patterns
Strategy, Observer, Factory, and other classic patterns for flexible object-oriented systems.
Module 08
OOD in Practice
End-to-end domain modelling, refactoring, and applying OOD principles to real-world systems.
Module 09
SOLID Principles
SRP, OCP, LSP, ISP, and DIP — five principles for flexible, maintainable object-oriented design.