Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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".
- Host: GitHub
- URL: https://github.com/kurnakovv/factorypattern
- Owner: kurnakovv
- Created: 2021-11-11T02:10:12.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-19T02:34:54.000Z (about 3 years ago)
- Last Synced: 2024-11-28T12:35:43.858Z (2 months ago)
- Topics: clean-architecture, clean-code, dotnet6, factory, factory-pattern, net6, oop, oop-principles, patterns, patterns-design, tdd, webapi
- Language: C#
- Homepage:
- Size: 15.6 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: ReadMe.md
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)),
};
}
```