We may earn an affiliate commission when you visit our partners.
Zoran Horvat

This course sheds light on issues that arise when implementing creational design patterns and then provides practical solutions that will make our code easier to write and more stable when running.

Read more

This course sheds light on issues that arise when implementing creational design patterns and then provides practical solutions that will make our code easier to write and more stable when running.

Many of the symptoms of deep design problems manifest when creating objects and object graphs. In this course, Tactical Design Patterns in .NET: Creating Objects, you'll see what it takes to create code that's easier and more stable. You'll start with a small console application which demonstrates basic Abstract Factory implementation. Next, you'll built a different console application which demonstrates basic implementation of the Builder pattern and exposes issues with it. Finally, you'll see the console application get much more complex while remaining completely stable and safe on the consuming end. When you're finished with this course, you'll be have a firm understanding of how to best create stable objects easily in .NET.

What's inside

Syllabus

Course Overview
Understanding Constructors and Their Roles
Advancing from Constructor to Abstract Factory
Avoiding Excess Factory Abstractness
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Focuses on using design patterns to create stable and easy-to-write code in .NET
In-depth exploration of creating objects and object graphs in .NET
Led by industry expert Zoran Horvat
Examines core creational design patterns and their practical implementation
Applicable to both beginner and intermediate .NET developers

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical .net creational design patterns for robust object creation

According to learners, this course is a highly practical guide to implementing creational design patterns in .NET. Many commend the instructor's clear explanations and engaging teaching style, noting his depth of knowledge. The hands-on demos and practical code examples are frequently highlighted as strengths, making the content directly applicable to professional work. While the course is effective in demystifying complex topics and provides actionable solutions for writing more robust code, some students found the pace somewhat fast or felt it assumes a certain level of prior experience, suggesting it might be better suited for intermediate to senior .NET developers.
Provides deep, .NET-specific insights into creational patterns.
"This one's focus on .NET specific issues and practical solutions sets it apart."
"The explanation of Liskov Substitution Principle and its relation to object creation was particularly insightful."
"The section on 'Avoiding Excess Factory Abstractness' was a highlight, providing much-needed nuance."
Features practical, well-explained code examples and refactoring.
"I particularly liked the hands-on demos and how he refactors the code step-by-step."
"The code examples are practical and well-explained. The code demos are superb."
"The code is top-notch, and the instructor's delivery is clear."
"I appreciated the focus on practical code refactoring."
Instructor explains complex concepts with clarity and expertise.
"The instructor explains complex concepts clearly. The instructor's teaching style is engaging."
"The instructor's depth of knowledge shines through. I've taken other design pattern courses, but this one's focus on .NET specific issues sets it apart."
"The instructor's delivery is clear and articulate."
"The instructor does a good job of demonstrating the pitfalls and how to avoid them."
Content is directly applicable to professional .NET development.
"It helped me apply these patterns in my daily work."
"The content is super relevant for professional C# developers. My code is already cleaner thanks to this course."
"I learned how to write more robust code and apply design patterns effectively."
"I feel more confident tackling complex object creation scenarios now."
Occasional audio inconsistencies or opportunities for more context.
"I found the audio quality inconsistent at times, and some of the code snippets were hard to follow without pausing frequently."
"I wished there were more discussions on performance implications of certain patterns..."
"I think the course could be improved by providing more context around why certain patterns are chosen over others in specific scenarios."
"Minor issues with occasional code typos in the early modules, but nothing major."
May be challenging for intermediates, better for experienced developers.
"The pace was mostly good, but sometimes felt a little rushed in the more advanced sections..."
"It assumes a certain level of familiarity with design patterns, so if you're a complete beginner, you might struggle."
"The explanations were sometimes too fast-paced for me... Maybe it's better for senior developers already familiar with these patterns."
"The material is certainly for those with some existing programming background."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Tactical Design Patterns in .NET: Creating Objects with these activities:
Review Abstract Factory Pattern
Reinforce understanding of Abstract Factory Pattern for stronger foundational skills before diving into Creational Patterns
Browse courses on Abstract Factory Pattern
Show steps
  • Review Definition, Purpose, and Usage of Abstract Factory
  • Examine Existing Implementations of Abstract Factory
  • Practice Applying Abstract Factory to a Small-Scale Project
Solve Problems with Abstract Factory Implementation
Reinforce understanding and ability to implement Abstract Factory Pattern through practical problem-solving exercises
Browse courses on Abstract Factory Pattern
Show steps
  • Solve LeetCode Problems Involving Abstract Factory
  • Create Custom Problems and Solutions Using Abstract Factory
  • Critique and Improve Existing Solutions to Abstract Factory Problems
Attend a Workshop on Design Patterns in .NET
Benefit from expert guidance and hands-on practice in a workshop setting to enhance understanding of Design Patterns
Browse courses on Design Patterns
Show steps
  • Find and Register for a Suitable Workshop
  • Prepare for the Workshop by Reviewing Basic Concepts
  • Attend the Workshop and Actively Participate
  • Follow Up After the Workshop by Practicing and Applying Learnings
Four other activities
Expand to see all activities and additional details
Show all seven activities
Design and Implement Builder Pattern in a Console Application
Develop a deeper understanding by designing and implementing a Builder pattern in a practical application to see its benefits
Browse courses on Builder Pattern
Show steps
  • Identify a Suitable Use Case for the Builder Pattern
  • Design the Builder Interface and Classes
  • Implement the Builder Pattern in a Console Application
  • Test and Debug the Implementation
  • Refine and Optimize the Design and Code
Explore Complex Object Creation with Specification Pattern
Gain insights into advanced object creation techniques by exploring the Specification Pattern and its applications in real-world scenarios
Browse courses on Specification Pattern
Show steps
  • Review the Concept and Benefits of the Specification Pattern
  • Follow Guided Tutorials on Implementing the Specification Pattern
  • Apply the Specification Pattern to a Project or Assignment
  • Evaluate and Refine the Implementation
Read 'Design Patterns: Elements of Reusable Object-Oriented Software'
Gain in-depth knowledge of Design Patterns and their applications from the seminal book by the Gang of Four
Show steps
  • Read and Understand the Introduction and Overview
  • Review the Creational Design Patterns in Detail
  • Explore the Structural and Behavioral Design Patterns
  • Apply the Patterns to a Real-World Project
Build a Complex Application using Creational Patterns
Integrate and apply multiple Creational Patterns to design and develop a sophisticated application that showcases your mastery
Show steps
  • Identify a Suitable Project Idea
  • Design the Application Architecture Using Creational Patterns
  • Implement the Application Using Creational Patterns
  • Test and Debug the Application
  • Deploy and Showcase the Application

Career center

Learners who complete Tactical Design Patterns in .NET: Creating Objects will develop knowledge and skills that may be useful to these careers:
Software Architect
Software Architects produce elegant solutions to complex technical problems. Their leadership and architectural designs are vital to the success of software development projects. This course may help you build a foundation of design principles that can translate into software architecture best-practices. For those looking to advance, this course may assist with understanding of covariance, contravariance, and the Liskov Substitution Principle.
Software Engineer
Software Engineers use engineering principles to design, develop, test, deploy, and maintain software systems. This course may teach coding patterns that help build object-oriented software in a stable and reliable manner. Furthermore, this course may help build foundational knowledge of design patterns that software engineers should know.
Software Developer
Software Developers work with code on a day-to-day basis. This course may provide them with a foundation of design patterns. These include Abstract Factory, Builder, Specification, and others. Familiarity with these patterns will benefit any software developer.
Back-End Developer
Back-End Developers are responsible for the server-side of web applications. They work with databases, servers, and the application logic. This course may teach back-end developers how to create stable object graphs and manage complex dependencies.
Full-Stack Developer
Full-Stack Developers are experts in both front-end and back-end development. They are responsible for the entire software stack. This course may help full-stack developers learn design patterns that enable them to create complex applications in a stable and reliable manner.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. This course may teach them how to create stable object graphs and manage complex dependencies.
Cloud Architect
Cloud Architects design, build, and manage cloud-based applications and infrastructure. This course may teach them how to create stable object graphs and manage complex dependencies.
Data Scientist
Data Scientists use scientific methods to extract knowledge and insights from data. This course may help them with building complex object graphs and managing complex dependencies.
Front-End Developer
Front-End Developers are responsible for the client-side of web applications, including the user interface. This course may be less directly relevant to the work that they do, but may nonetheless provide helpful information regarding creational design patterns.
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations. They may find this course helpful in understanding how to create stable objects and manage complex dependencies.
Quality Assurance Analyst
Quality Assurance Analysts test software to ensure that it meets requirements and is free of defects. This course may help them refine their skills in finding bugs and imperfections.
Product Manager
Product Managers are responsible for the overall vision and strategy of a software product. This course may be less relevant to their work, but may be helpful in understanding how technical decisions are made.
Project Manager
Project Managers plan and execute software development projects. This course may be helpful for them in understanding the technical aspects of software development and how to manage a team of engineers.
Business Analyst
Business Analysts gather and analyze business requirements and translate them into technical specifications. This course may be helpful for them in understanding the technical aspects of software development and how to communicate with engineers.
Technical Writer
Technical Writers create documentation for software products. This course may be less directly relevant to their work, but may be helpful in understanding the technical aspects of software development and how to write clear and concise documentation.

Reading list

We've selected 20 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Tactical Design Patterns in .NET: Creating Objects.
Is considered a foundational text in object-oriented programming and software design. The book provides a comprehensive overview of various design patterns and the problems they solve. It valuable resource for software engineers looking to learn about and apply design patterns in their own projects.
Provides a set of principles and practices for writing clean, readable, and maintainable code. It covers topics such as naming conventions, refactoring techniques, and design patterns.
More accessible and beginner-friendly introduction to design patterns compared to the Gang of Four book. It uses a conversational style, humor, and real-world examples to make design patterns easy to understand and apply.
This famous text is the go-to guide for design patterns from the renowned author "Uncle Bob" Martin. It provides a good balance of depth and breadth, covering many of the object-oriented design patterns, including those discussed in this course. It is accessible to both beginners and experienced developers.
A beginner-friendly introduction to creational design patterns, which include the Abstract Factory and Builder patterns. It is known for its engaging and visual style of teaching.
Provides a comprehensive overview of architectural patterns for enterprise applications. It covers topics such as service-oriented architecture, domain-driven design, and microservices.
Introduces the concept of domain-driven design (DDD) and provides a practical approach to designing software that is closely aligned with the domain it represents. It helps software engineers understand the business context and build software that meets the needs of the stakeholders.
A classic book on object-oriented design principles and practices. While it does not focus specifically on design patterns, it provides a solid foundation for understanding the principles behind them.
Focuses on the challenges and complexities involved in software architecture. It provides practical advice and insights on how to design and implement scalable, maintainable, and extensible software systems.
An introduction to design patterns from an agile development perspective, covering the techniques used in the Test-Driven Development (TDD) approach. It provides a practical guide to applying design patterns in agile software development.
A foundational book on software architecture, presenting a comprehensive catalogue of architectural patterns and their relationships. While it has some overlap with design patterns, it offers a broader perspective on software systems.
An approachable introduction to Java programming, including the basics of object-oriented design and some basic design patterns. It can provide a helpful foundation for learners new to Java and object-oriented programming.
A collection of best practices and guidelines for writing clear, concise, and efficient Java code. While not specifically about design patterns, it promotes principles that are beneficial for object-oriented design.
A comprehensive guide to designing and implementing messaging-based solutions for enterprise applications. While specific to messaging systems, it offers valuable patterns and principles that can be applied to designing object-oriented systems.
A guide to designing and structuring software applications based on the principles of modularity, testability, and maintainability. While not focused on design patterns per se, it offers valuable insights into software design and architecture.
A comprehensive guide to concurrency and multithreading in Java. While not directly related to design patterns, it provides essential knowledge for designing and implementing concurrent and scalable systems.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser