Software Design Patterns - From Principles to Practice
“Design patterns are solutions to recurring design problems.” ~ Anonymous
This course is designed to help developers master Design Patterns — timeless, battle-tested solutions to recurring software design problems. Design patterns teach you how to structure code for flexibility, reusability, and ease of maintenance, allowing you to think beyond syntax and focus on building elegant, problem-driven solutions.
Before diving into patterns, we revisit OOP concepts, design principles, unit testing, and refactoring, because understanding object-oriented foundations, writing testable code, and identifying code smells are essential for recognizing where and why design patterns truly add value.
📝 Register NowSince 2008, Zohirul Alam Tiemoon has empowered over 10,000 professionals — many of whom are now making a significant impact in both local and global software development. Join the legacy and level up your coding career!
Join the 1st batch of this exclusive training program! Don’t miss out on this opportunity to enhance your skills and grow professionally.
🌟 Enroll Now! Limited Spots Available! 🌟
- No of Seats: 15. Register Today: Register here
- Deadline: Will be declared soon
- Program Starts: Will be declared soon
- Registration Fee: 10,000 BDT (after a 33.33% discount on the base price of 15,000 BDT)
- Class Schedule: Will be declared soon
- Duration: 10 Days × 4 Hours = 40 hours total
- Mode: 10 Live online sessions via Google Meet
- Session recordings and resources will be provided
Prerequisite
A solid grasp of practical OOP concepts is essential. After enrollment, you’ll be required to take an online test followed by an interview with trainers to assess your eligibility for this course.Online Test and the interview will focus on OOP Basics, OOP Principles, Unit Testing, and the fundamentals of Code Smells & Refactoring.
What you will learn
"Good software systems begin with clean code. On the one hand, if the bricks aren't well made, the architecture of the building doesn't matter much. On the other hand, you can make a substantial mess with well-made bricks. This is where the SOLID principles come in." ~ Robert C. Martin
- OOP & SOLID fundamentals
- Identifying Code smelles & Refactoring techniques
- Detailed understanding and practical usages of Design Patterns
Course Outline
OOP & Design Thinking Refresh
- OOP recap: class, object, reference types, static
- Relationships: association, aggregation, composition, inheritance
- Abstract class vs interface; method overriding & polymorphism
OOP Principles - SOLID & More
- Introduction to SOLID Principles
- Single Responsibility Principle (SRP)
- Open/Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
Unit Testing Basics
- What is Unit Testing? Benefits of Unit Testing
- Writing First Unit Tests. SetUp & TearDown, Parameterized/Ignored tests
- Principles: FIRST, AAA Pattern, Behavior vs Implementation, Naming tests
- Creating mock objects, verifying behavior, mocking APIs
Code Smells & Refactoring
- Identify and eliminate code smells
- Apply refactoring techniques
- Refactor without changing behavior, focusing on readability, reusability, and maintainability
Design Patterns - What and Why?
Design patterns are proven, reusable solutions to common software design problems that developers face repeatedly. They provide a shared language and structure, helping teams build systems that are flexible, maintainable, and scalable. Using design patterns saves time, reduces code complexity, and promotes cleaner architecture by leveraging collective best practices.
Creational patterns
- Singleton
- Prototype
- Builder
- Abstract factory
- Factory method
Structural patterns
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
Behavioral patterns
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Template method
- Visitor
“simplicity is the ultimate sophistication.” ~ Leonardo da Vinci
💳 Payment Methods
Please fill up your information here: Register here and make your payment using one of the following methods:
- bKash (Send Money): 01711281825
-
Bank Transfer:
- Name: Zohirul Alam Tiemoon
- Saving Account: 0443201000014597
- Karwan Bazar Branch
- Routing Number: 245262537
- United Commercial Bank (UCB) Limited
Once you've made the payment, kindly send a screenshot or the transaction details to WhatsApp: 01711281825 .
👨🏫 Program Coach
Zohirul Alam Tiemoon