Created
September 9, 2020 11:24
-
-
Save night-fury-rider/e5da3d1aa8fa5c74921063ce2830d1b3 to your computer and use it in GitHub Desktop.
Design Pattern - Factory
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var Mobile = function(size) { | |
this.displaySize = size; | |
}; | |
var Tablet = function(size) { | |
this.displaySize = size; | |
}; | |
var Desktop = function(size) { | |
this.displaySize = size; | |
}; | |
// Factory which will create different types of objects based on requirement | |
var DeviceFactory = function(){ | |
var device; | |
this.createDevice = function(size) { | |
switch(size) { | |
case 'small': | |
return new Mobile(size); | |
case 'medium': | |
return new Tablet(size); | |
case 'large': | |
return new Desktop(size); | |
} | |
} | |
}; | |
var factory = new DeviceFactory(); | |
var device1 = factory.createDevice('small'); | |
var device2 = factory.createDevice('medium'); | |
var device3 = factory.createDevice('large'); | |
console.log(device1.displaySize); // small | |
console.log(device2.displaySize); // medium | |
console.log(device3.displaySize); // large |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment