Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kurnakovv/factorypattern

Best practices for "Factory pattern".
https://github.com/kurnakovv/factorypattern

clean-architecture clean-code dotnet6 factory factory-pattern net6 oop oop-principles patterns patterns-design tdd webapi

Last synced: 13 days ago
JSON representation

Best practices for "Factory pattern".

Awesome Lists containing this project

README

        

# FactoryPattern

## How to use:

``` cs
IEmployeeFactory employeeFactory = new EmployeeFactory("Employee name", 100);
IEmployee employee1 = employeeFactory.Create(EmployeeType.Developer);

employeeFactory.Name = "New employee name";
employeeFactory.Salary = 150;
IEmployee employee2 = employeeFactory.Create(EmployeeType.Plumber);

employee1.Work();
employee2.Work();
```

``` cs
IEmployeeFactory employeeFactory = new EmployeeFactory("Employee name", 100);
IEmployee employee1 = employeeFactory.Create(EmployeeType.Developer);
IEmployee employee2 = employeeFactory.Create(EmployeeType.Manager);

employee1.Work();
employee2.Work();
```

## How it is work:

``` cs
public IEmployee Create(EmployeeType type)
{
return type switch
{
EmployeeType.Developer => new Developer(Name, Salary),
EmployeeType.Manager => new Manager(Name, Salary),
EmployeeType.Plumber => new Plumber(Name, Salary),
_ => throw new ArgumentException(nameof(type)),
};
}
```