Middle+
JavaScript ve TypeScript'te yaygın olan ve Java'da bulunmayan tasarım desenleri nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
- Singleton (JS/TS'de modüller ve kapanışlar sayesinde daha kolay uygulanır).
- Module (dilin örtük deseni).
- Prototype (prototip kalıtım yoluyla).
- Mixin (Object.assign, sınıflar veya fabrika fonksiyonları aracılığıyla).
- Revealing Module Pattern (kapanışlar kullanılarak).
- Factory Function (sınıf yapıcılarına alternatif).
- Dependency Injection (daha çok fabrikalar veya konteynerler aracılığıyla, Java'daki gibi açıklamalara çok bağlı değil).
Farklılık örnekleri:
- Singleton:
// singleton.js
const instance = {
data: 'some data'
};
export default instance; // Tek örneğin basit ihracı
Java'da, getInstance() adlı statik bir yöntem ve özel bir yapıcı gerekir.
- Module:
// module.js
const privateVar = 'private';
export function publicMethod() {
console.log(privateVar);
}
Java'da, sınıfların ve erişim belirteçlerinin açıkça bildirilmesi gerekir.
- Prototype:
const animal = {
speak() {
console.log('...');
}
};
const dog = Object.create(animal);
dog.speak = function() {
console.log('woof');
};
dog.speak(); // woof
Java'da kalıtım sınıflar üzerine kuruludur.
- 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, native destek yoktur; arayüzler veya bileşim kullanılır.