🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.
The classic State design pattern is often implemented with many small classes and heavy inheritance. In this video, I show a different approach.
I start with the traditional object-oriented version and then refactor it into a generic, data-driven state machine using Python features like decorators, enums, and generics. The result is a clean, reusable engine where transitions are explicit and easy to understand.
🔥 GitHub Repository: https://git.arjan.codes/2026/state.
🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.
💬 Join my Discord server: https://discord.arjan.codes.
⌨️ Keyboard I’m using: https://amzn.to/49YM97v.
🔖 Chapters:
0:00 Intro
3:24 Why This Matters
4:11 Step 1 — The Traditional Class-Based State Pattern
4:57 Step 2 — Realization: This Is Just a Lookup Table
5:21 Step 3 — Extracting a Generic StateMachine
17:35 Step 4 — Making Transitions Declarative with a Decorator
20:37 Step 5 — Supporting Multiple From States
24:05 The Payment Class Becomes Boring (In a Good Way)
25:30 When To Use This vs Classic OO
25:54 Final Thoughts
#arjancodes #softwaredesign #python
On this page of the site you can watch the video online The State Pattern Done the Pythonic Way with a duration of hours minute second in good quality, which was uploaded by the user ArjanCodes 10 April 2026, share the link with friends and acquaintances, this video has already been watched 42,287 times on youtube and it was liked by 1.6 thousand viewers. Enjoy your viewing!