Advanced Design Patterns: Design Principles
53mAdvanced2020-03-23
Authors

Eric Freeman
Author, Computer Scientist
Course details
You may be familiar with the fundamental concepts of object-oriented design—inheritance, encapsulation, polymorphism, and abstraction—but there is a set of higher-level design principles that can be used to take your design to the next level. Design principles guide your design decisions to produce software that is more reliable, flexible, and maintainable. Join instructor Eric Freeman as he goes beyond the standard concepts of object-oriented programming to introduce you to the most notable design principles, including encapsulate what varies, favor composition over inheritance, loose coupling, and the SOLID principles. Each lesson includes examples that show how these principles can be used to avoid costly design mistakes and create more maintainable, high-quality software.
Skills covered
Software DesignJavaAdvancedOraclePythonProgramming LanguagesOpen SourceSoftware Development
Concepts
0. Introduction
- 01 - Take your design to the next level
- 02 - What are design principles
- 03 - How many design principles are there
- 04 - Design principles and design patterns
1. The Principles
- 05 - Encapsulate what varies
- 06 - Favor composition over inheritance
- 07 - Loose coupling
- 08 - Program to interfaces
- 09 - Single responsibility principle
- 10 - Open-closed principle
- 11 - Liskov's substitution principle
- 12 - Interface segregation principle
- 13 - Dependency inversion principle
Conclusion
- 14 - Continuing your studies
Related courses
- Python: Design Patterns (2021)
- Design Patterns: Creational
- Building Scalable Microservices with TypeScript and Node.js
- Agentic AI Human-Agent Collaboration Design Patterns
- Multimodal Programming Interfaces
- Building Event-Driven Applications In Go
- Claude with Google Cloud Vertex AI by Anthropic
- Python: Advanced Design Patterns
Related learn paths
- Advance Your Skills in Python
- Working with Data: Collecting, Processing, and Storing Data for AI
- Become a Programmer: Foundations
- Microservices Foundations Professional Certificate by Kong
- Getting Started with Microservices
- Building Agentic AI Systems for Developers
- Elevating C# Skills: Building Robust Applications
- Become an AWS Data and DevOps Specialist