Sobes.tech
Middle+

JavaScript və TypeScript-də yaygın olan və Java-da rast gəlinməyən dizayn nümunələri hansılardır?

sobes.tech Süni İntellekt

AI-dan cavab

  • Singleton (JS/TS-də modullar və bağlamalar vasitəsilə daha asan həyata keçirilir).
  • Modul (dilın implicit nümunəsi).
  • Prototype (prototip irsi vasitəsilə).
  • Mixin (Object.assign, siniflər və ya fabrik funksiyaları vasitəsilə).
  • Revealing Module Pattern (bağlamalar istifadə etməklə).
  • Factory Function (sinif konstruktörlərinə alternativ).
  • Dependency Injection (əksər hallarda fabriklər və ya konteynerlər vasitəsilə, Java-dakı kimi şərhlərə çox bağlı deyil).

Fərqlər nümunələri:

  • Singleton:
// singleton.js
const instance = {
  data: 'some data'
};

export default instance; // Yeganə nümunənin sadə ixracı

Java-da, getInstance() adlı statik metod və xüsusi konstruktor lazımdır.

  • Module:
// module.js
const privateVar = 'private';

export function publicMethod() {
  console.log(privateVar);
}

Java-da, siniflərin və giriş modifikatorlarının açıq elan olunması tələb olunur.

  • Prototype:
const animal = {
  speak() {
    console.log('...');
  }
};

const dog = Object.create(animal);
dog.speak = function() {
  console.log('woof');
};

dog.speak(); // woof

Java-da, irsi sinflər üzərində qurulur.

  • 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 dəstək yoxdur; interfeys və ya kompozisiya istifadə olunur.