Design patterns are templates or solutions for common software development problems.
Design patterns are divided into three categories.
- Behavioral
- Creational
- Structural
The factory pattern is a creational design pattern that provides a generic interface for creating objects.
EX:-
function Developer(name , experience) {
this.name = name;
this.type = "Developer";
this.experience = experience;
}
function Tester(name, experience) {
this.name = name;
this.type = "Tester";
this.experience = experience;
}
function EmployeeFactory() {
this.create = (name, type) => {
switch (type) {
case 1:
return new Developer(name,4);
break;
case 2:
return new Tester(name,6);
break;
}
}
}
function say() {
console.log("i am " + this.name + " i am a " + this.type +" and having a "+ this.experience +"years of experience ");
}
let employees = [];
const employeeFactory = new EmployeeFactory();
employees.push(employeeFactory.create("Sam", 1));
employees.forEach((employee) => {
say.call(employee);
});
As you can see, we have created developer and Tester objects with their names. Using this pattern you could create as many objects you require each with their own name and experience.
Top comments (1)
Nice summary. The example's a little hard to read though; you can create a code block by typing three back-ticks on the lines above and below your code.