Sobes.tech
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.