Middle+
Кадом намунаҳои тарҳрезӣ дар JavaScript ва TypeScript маъмуланд, ки дар Java вуҷуд надоранд?
sobes.tech AI
Ҷавоб аз AI
- Singleton (дар JS/TS ба осонтар амалӣ кардан мумкин аст бо истифода аз модулҳо ва closure).
- Module (паттерни ношаффофи забон).
- Prototype (аз тариқи мероси прототипӣ).
- Mixin (бо Object.assign, синфҳо ё функсияҳои фабрика).
- Pattern-и Module-ро ошкор кардан (бо истифода аз closure).
- Factory Function (альтернатива ба конструкторҳои синф).
- Dependency Injection (бештар тавассути фабрикаҳо ё контейнерҳо, на он қадар вобаста ба annotations, ки дар 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, дастгирии табиӣ барои mixins вуҷуд надорад (интерфейсҳо ё композиция истифода мешаванд).