We may earn an affiliate commission when you visit our partners.
Pluralsight logo

Tactical Design Patterns in .NET

Creating Objects

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.

Enroll now

What's inside

Syllabus

Course Overview
Understanding Constructors and Their Roles
Advancing from Constructor to Abstract Factory
Avoiding Excess Factory Abstractness
Read more
Understanding Dependencies, Covariance, and Contravariance
Applying the Substitution and Liskov Substitution Principles
Returning to Concrete Classes with the Builder Pattern
Embedding Calling Protocols into the Builder
Breathing Life Back into Factory Methods with Lambdas
Building Complex Objects with the Specification Pattern
Building Object Graphs with the Specification Pattern

Good to know

Know what's good
, what to watch for
, 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

Save Tactical Design Patterns in .NET: Creating Objects to your list so you can find it easily later:
Save

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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

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

Here are nine courses similar to Tactical Design Patterns in .NET: Creating Objects.
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 - 2024 OpenCourser