Util content: dofacory.com/javascript/design-patterns
- Useful for creating custom behaviors, using methods with descriptive names.
- It's a lot like a production line, where each employee performs a single function.
myBuilderFunction
.stepOne()
.stepTwo()
.stepThree()
.stepFour()
.finish()- Useful for concentrating instance creation in one place.
- Gives the possibility to crate some logic when creating an instance.
function createOjbInstance(optionalParam) {
const param = optionalParam || "I am a default param"
return new MyClass(param)
}
const objOne = createObjInstance()
const objTwo = createObjInstance()
const objThree = createOjbInstance("I am an optional parameter")
const objFour = createOjbInstance()- Useful for abstracting data persistence.
- Methods have descriptive names (find, findById, findByName, create, save, delete, remove etc).
const myRepository = new MyRepositoryClass()
myRepository.save({ id: "123abc", fieldOne: "one", fieldTwo: "two" })
myRepository.save({ id: "456dfg", fieldOne: "three", fieldTwo: "four" })
const allRepositoryData = myRepository.find()
// [{ id: "123abc", fieldOne: "one", fieldTwo: "two" }, { id: "456dfg", fieldOne: "three", fieldTwo: "four" }]