Middle+
Millised disainimustrid on levinud JavaScriptis ja TypeScriptis, kuid mitte Java's?
sobes.tech AI
Vastus AI-lt
- Singleton (JS/TS-s on lihtsam teostada modulite ja sulgude abil).
- Module (keele implitsiitne muster).
- Prototype (prototüüp pärimise kaudu).
- Mixin (Object.assign, klasside või tehasefunktsioonide kaudu).
- Revealing Module Pattern (kasutades sulgusid).
- Factory Function (alternatiiv klasside konstruktoritele).
- Dependency Injection (enamasti tehase või konteineri kaudu, mitte nii palju sõltuv annotatsioonidest nagu Java-s).
Näited erinevustest:
- Singleton:
// singleton.js
const instance = {
data: 'mõned andmed'
};
export default instance; // Lihtne ühe eksemplari eksport
Java-s on vaja staatilist meetodit getInstance() ja privaatset konstruktorit.
- Module:
// module.js
const privateVar = 'privaatne';
export function publicMethod() {
console.log(privateVar);
}
Java-s on vaja klasside ja juurdepääsimuutujate selget deklareerimist.
- Prototype:
const animal = {
speak() {
console.log('...');
}
};
const dog = Object.create(animal);
dog.speak = function() {
console.log('woof');
};
dog.speak(); // woof
Java-s põhineb pärimine klassidel.
- Mixin:
const searchable = {
search() {
console.log('Otsimine...');
}
};
class Article {
constructor(title) {
this.title = title;
}
}
Object.assign(Article.prototype, searchable);
const myArticle = new Article('Tere');
myArticle.search(); // Otsimine...
Java-s ei ole sisseehitatud tugi mixinidele (kasutatakse liideseid või koostööd).