Middle+
JavaScript va TypeScriptda keng tarqalgan va Java'da uchmaydigan dizayn shablonlari qanday?
sobes.tech AI
AIdan javob
- Singleton (JS/TS da oddi soddalash uchun modullar va yopilishlar yordamida osonroq amalga oshiriladi).
- Module (tilning implicit naqshasi).
- Prototype (prototip merosxo'rlik orqali).
- Mixin (Object.assign, sinflar yoki fabrikatsiya funksiyalari orqali).
- Revealing Module Pattern (yopilishlar yordamida).
- Factory Function (sinf konstruktorlariga alternativ).
- Dependency Injection (ko'pincha fabrikalar yoki konteynerlar orqali, Java'dagi kabi annotatsiyalarga juda bog'liq emas).
Farqlar misollari:
- Singleton:
// singleton.js
const instance = {
data: 'some data'
};
export default instance; // Yagona nusxani oddiy eksport qilish
Java'da, getInstance() nomli statik metod va maxfiy konstruktor kerak.
- Module:
// module.js
const privateVar = 'private';
export function publicMethod() {
console.log(privateVar);
}
Java'da, aniq ravishda sinflar va kirish modifikatorlarini e'lon qilish talab etiladi.
- Prototype:
const animal = {
speak() {
console.log('...');
}
};
const dog = Object.create(animal);
dog.speak = function() {
console.log('woof');
};
dog.speak(); // woof
Java'da, merosxo'rlik sinflarga asoslangan.
- Mixin:
const searchable = {
search() {
console.log('Searching...');
}
};
class Article {
constructor(title) {
this.title = title;
}
}
Object.assign(Article.prototype, searchable);
const myArticle = new Article('Hello');
myArticle.search(); // Searching...
Java'da, nativ qo'llab-quvvatlash mavjud emas; interfeyslar yoki kompozitsiya ishlatiladi.