Mid SOLID

How do you implement a Factory pattern in C#?

A simple example of Factory Method:

// Product interface

public interface IAnimal

void Speak();

// Concrete Products

public class Dog : IAnimal

public void Speak() => Console.WriteLine("Woof");

public class Cat : IAnimal

public void Speak() => Console.WriteLine("Meow");

// Factory

public class AnimalFactory

public static IAnimal CreateAnimal(string animalType)

return animalType.ToLower() switch

"dog" => new Dog(),

"cat" => new Cat(),

_ => throw new ArgumentException("Invalid animal type")

Usage:

var dog = AnimalFactory.CreateAnimal("dog");

dog.Speak(); // Outputs: Woof

More from Design Patterns in C#

All questions for this course