Prototype
by Artem
JavaScript
'use strict';
class Project {
constructor(id, name, sourceCode) {
this.id = id;
this.name = name;
this.sourceCode = sourceCode;
}
copy() {
return new Project(this.id, this.name, this.sourceCode);
}
}
class ProjectFactory {
setProject(project) {
this.project = project;
}
cloneProject() {
return this.project.copy();
}
}
// usage
const master = new Project(1, 'My Project', 'console.log("Hello, World!")');
const projectFactory = new ProjectFactory();
projectFactory.setProject(master);
const masterClone = projectFactory.cloneProject();
console.log(masterClone);