C# Design Patterns

In this course, I will teach you the 23 fundamental software design patterns from the famous book Design Patterns: Elements of Reusable Object-Oriented Software by the Gang of Four. It is regarded as the standard reference manual for object-oriented design theory and practice.

You will learn 11 Behavioral, 5 Creational and 7 Structural Design Patterns, including the Visitor Pattern, the State Machine, the Composite pattern, the Prototype… and much more!

By the end of this course, you will be fluent in all 23 design patterns, and with this knowledge, you will be well on your way to becoming a Senior Application Architect.

Here’s What You’ll Get

Training Lectures

Video Lessons


C# Design Patterns



Training Details

In this course, you will learn all 23  fundamental software design patterns from the famous book titled “Design Patterns: Elements of Reusable Object-Oriented Software” by the “Gang of four”. This is the standard reference manual for object-oriented design theory and practice.

With these patterns, you can create new objects efficiently and structure how different parts of your application architecture interact with each other.

You will learn how to build a State Machine, how to use the Iterator pattern to enumerate collections, I’ll explain what the Visitor Pattern does in simple terms, how to invoke operations with the Command Pattern, how to perform multi-step object construction with the builder pattern, how to reduce memory with a Flyweight, and much more!


    Name: C# Design Patterns.

    Format: self-paced.

    Content: training lectures, video lessons, and quizzes.

    Requirements: a Windows, Mac or Linux laptop with Microsoft Visual Studio or Visual Studio Code.

    Support: Slack channel.

    Associated certification: none.


    Sneak Preview

    In this complimentary lecture, I will teach you how the Flyweight Design Pattern works. This pattern will let you share object instances across a very large data structure. It’s a good choice when you need to support a very large numbers of fine-grained objects whose state information can be retrieved on demand. I’ll use some examples to help you understand.

    Training Curriculum


    Course prerequisites

    The Gang of Four and The 23 Design Patterns

    Creational Design Patterns


    Abstract Factory Pattern

    Builder Pattern

    Factory Method Pattern

    Prototype Pattern

    Singleton Pattern



    Behavioral Design Patterns


    Chain of Responsibility Pattern  

    Command Pattern

    Interpreter Pattern

    Iterator Pattern

    Mediator Pattern

    Memento Pattern

    Observer Pattern

    State Pattern

    Strategy Pattern 

    Template Method Pattern

    Visitor Pattern



    Structural Design Patterns


    Adapter Pattern

    Bridge Pattern

    Composite Pattern

    Decorator Pattern

    Facade Pattern

    Flyweight Pattern

    Proxy Pattern



    In Conclusion

    What you´ve learned

    Bonus lecture

    Sign Up For This Training

    You can sign up for this training right now by clicking the button, filling in the checkout form and completing your payment.

    Once we have received your payment, you will receive an email within minutes with a link to access the online training platform.

    Please note that the listed price is ex VAT. Registered EU businesses with a valid VAT number can defer the VAT during checkout. Non-EU businesses and individuals do not pay VAT.

    Looking For Something Else?


    Is this online training not what you’re looking for? Then please check out my other C# training courses.

    Related Microsoft Training


    Would you rather train with your team in a classroom setting? Then please check out my Microsoft C# training courses.

    “Highly relevant for my job. Mark uses clear and simple examples that reveal the concepts quite nicely.”

    Frank Hauge – online student

    See Me In Action


    In 2002 my startup DesignState was one of the partners that built the Eye’Catcher videophone for Eckhard Wintzen, a famous Dutch software millionaire. The videophone ran on a mix of C# and embedded machine language, featured true eye contact and supported nonverbal communication in online negotiations. Its purpose was to make air travel obsolete.

    This photo was taken just as my team finished building the first prototype and conducted a final acceptance test. You can see a much younger me on screen as we are testing all the features of the phone in preparation of the official presentation.

    Frequently Asked Questions

    • Classroom Training
    • Microsoft Training
    • Online Training
    • Misc
    What is a classroom training?
    A classroom training is a live event in which I will present the training lectures and help you complete the lab exercises. You will be sharing the classroom with your colleagues and learn together as a group.
    Where is a classroom training conducted?
    Depending on your needs, classroom trainings can be conducted on-site at your place of work, in a fully-equipped classroom at a training agency, or online in a multi-day Microsoft Teams or Zoom session.
    Who should attend a classroom training?
    A classroom training is ideal for tech professionals who can commit to full days of learning and want to learn together as a group.
    How am I supported in a classroom training?
    I will continuously support you live, because we’ll both be in the same physical or virtual classroom together.
    What is a Microsoft training?
    A Microsoft training is an official classroom training course from the Microsoft training catalog that will teach you essential tech skills and prepare you for a certification exam.
    What's included in a Microsoft training?
    You will receive online course content, access to an Azure sandbox environment, lab exercises, a practice exam and an exam voucher.
    How long do I have access to a Microsoft training?
    You have unlimited access to the training content, 180 days access to the lab environment and 30 days of access to the practice exam. The exam voucher is valid for a year.
    How can my team and I attend a Microsoft training?
    Please provide your requirements in the form on the training pages and I will contact you as soon as possible to plan and set up your training.
    What is an online training?
    In an online training you can study the training lectures and work on the lab assignments in your own time and at your own pace. You can spend as many or as little hours per week as you want on the training. This training format is ideal for tech professionals who have irregular work hours and cannot commit to a classroom training.
    What's included in an online training?
    You will receive prerecorded online video lectures, text lectures, multiple-choice quizzes and homework exercises.
    How am I supported in an online training?
    You are supported through email, and you can also book a 30-minute video support call with me if you want. I will help you with the training lectures and lab exercises and get you ready for your certification exams.
    Who should attend an online training?
    An online training is ideal for tech professionals who want to set their own learning pace and prefer to work independently with a bit of guidance and support throughout the training.
    Are you a certified trainer?
    Yes. I started classroom training in 1997 and obtained my Microsoft Certified Trainer (MCT) credential in 2005. I currently have more than 25 years of training experience.
    What is the maximum size for a classroom training?
    It depends on the size of the classroom, the team and the complexity of the subject. But typically, groups of up to 15 students work best. If you have a larger group, it's best to split them over multiple training sessions.
    Can you provide training in a non-English language?
    Yes, I am fluent in English, Dutch and German thanks to a multilingual upbringing by my international family. I can provide any training in all three languages.
    Will you travel to my country to provide a classroom training?
    Yes. I am based in Amsterdam and often travel abroad to provide classroom training in other countries. I love meeting my students on-site, no matter where they live.