Middle+
Kādi dizaina modeļi ir izplatīti JavaScript un TypeScript, bet nav Java?
sobes.tech AI
Atbilde no AI
- Singleton (JS/TS ir modulēs viegli īstenojams, izmantojot moduļus un slēdzenes).
- Module (valodas implicitais paraugs).
- Prototype (caur prototipisko mantošanu).
- Mixin (caur Object.assign, klasēm vai fabrikas funkcijām).
- Revealing Module Pattern (ar slēdzenēm).
- Factory Function (alternatīva klases konstruktoriem).
- Dependency Injection (biežāk caur fabrikām vai konteineriem, ne tik ļoti atkarīgs no anotācijām kā Java).
Daži piemēri atšķirībām:
- Singleton:
// singleton.js
const instance = {
data: 'kāds datums'
};
export default instance; // Vienkāršs viena eksemplāra eksportēšana
Java nepieciešams statiskais metodes getInstance() un privāts konstruktoris.
- Module:
// module.js
const privateVar = 'privāts';
export function publicMethod() {
console.log(privateVar);
}
Java nepieciešama skaidra klases un piekļuves modifikatoru deklarācija.
- Prototype:
const animal = {
speak() {
console.log('...');
}
};
const dog = Object.create(animal);
dog.speak = function() {
console.log('woof');
};
dog.speak(); // woof
Java mantošana balstās uz klasēm.
- Mixin:
const searchable = {
search() {
console.log('Meklēšana...');
}
};
class Article {
constructor(title) {
this.title = title;
}
}
Object.assign(Article.prototype, searchable);
const myArticle = new Article('Sveiki');
myArticle.search(); // Meklēšana...
Java nav iebūvēta atbalsta miksiem (izmanto interfeisus vai kompozīciju).