Middle+
Ի՞նչ նախագծման նմուշներ են տարածված JavaScript և TypeScript-ում, որոնք Java-ում չեն հանդիպում։
sobes.tech AI
Պատասխան AI-ից
- Singleton (JS/TS- ում ավելի հեշտ է իրականացնել մոդուլների և փակման միջոցով):
- Module (լեզվի ենթադրյալ նմուշ):
- Prototype (պրոտոտիպային ժառանգության միջոցով):
- Mixin (Object.assign, դասեր կամ ֆաբրիկա ֆունկցիաներ):
- Revealing Module Pattern (փակման օգտագործմամբ):
- Factory Function (ընտրանք դասի կոնստրուկտորների համար):
- Dependency Injection (ավելի հաճախ ֆաբրիկաների կամ կոնտեյներների միջոցով, ոչ այնքան կախված է նշանավորումներից, ինչպես Java-ում):
Տարբերությունների օրինակներ:
- Singleton:
// singleton.js
const instance = {
data: 'մեկ տվյալ'
};
export default instance; // Պարզ արտահանում միակ օրինակից
Java-ում անհրաժեշտ է ստատիկ getInstance() մեթոդ և մասնավոր կոնստրուկտոր:
- Module:
// module.js
const privateVar = 'մասնավոր';
export function publicMethod() {
console.log(privateVar);
}
Java-ում անհրաժեշտ է բացահայտ հայտարարել դասեր և մոդիֆիկատորներ:
- Prototype:
const animal = {
speak() {
console.log('...');
}
};
const dog = Object.create(animal);
dog.speak = function() {
console.log('woof');
};
dog.speak(); // woof
Java-ում ժառանգությունը հիմնված է դասերի վրա:
- Mixin:
const searchable = {
search() {
console.log('Որոնում...');
}
};
class Article {
constructor(title) {
this.title = title;
}
}
Object.assign(Article.prototype, searchable);
const myArticle = new Article('Բարև');
myArticle.search(); // Որոնում...
Java-ում բնատուր աջակցություն չկա միկսինների համար (օգտագործվում են ինտերֆեյսներ կամ կոմպոզիցիա):