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('гав');
};
dog.speak(); // гав
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-да нативті миксиндерді қолдау жоқ (интерфейстер немесе композиция пайдаланылады).