C# | Factory Design Pattern | Creational Design Pattern

Defines an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.

This structural code demonstrates the Factory method offering great flexibility in creating different objects. The Abstract class may provide a default object, but each subclass can instantiate an extended version of the object.



Code Syntax -

public interface ICar
{
    void Start();
}

public class SixSeater : ICar
{
    public void Start()
    {
        throw new NotImplementedException();
    }
}

public class FourSeater : ICar
{
    public void Start()
    {
        throw new NotImplementedException();
    }
}

public class CarFactory
{
    public ICar GetCar(string carType)
    { 
        switch(carType)
        {
            case "SixSeater":
                return new SixSeater();

            case "FourSeater":
                return new FourSeater();
        }
        return null;
    }
}

internal class Program
{
    static void Main(string[] args)
    {
        CarFactory factory = new CarFactory();
        ICar sixSeater = factory.GetCar("SixSeater");
        ICar fourSeater = factory.GetCar("FourSeater");
    }
}

When to use it?

The process of objects creation is required to centralize within the application.

A class (creator) will not know what classes it will be required to create.


Comments

Popular posts from this blog

C# | SOLID Principles

C# | Design Patterns