Sobes.tech
Middle+

Кадом намунаҳои тарҳрезӣ дар JavaScript ва TypeScript маъмуланд, ки дар Java вуҷуд надоранд?

sobes.tech AI

Ҷавоб аз AI

  • Singleton (дар JS/TS ба осонтар амалӣ кардан мумкин аст бо истифода аз модулҳо ва closure).
  • Module (паттерни ношаффофи забон).
  • Prototype (аз тариқи мероси прототипӣ).
  • Mixin (бо Object.assign, синфҳо ё функсияҳои фабрика).
  • Pattern-и Module-ро ошкор кардан (бо истифода аз closure).
  • Factory Function (альтернатива ба конструкторҳои синф).
  • Dependency Injection (бештар тавассути фабрикаҳо ё контейнерҳо, на он қадар вобаста ба annotations, ки дар 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('woof');
};

dog.speak(); // woof

Дар 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, дастгирии табиӣ барои mixins вуҷуд надорад (интерфейсҳо ё композиция истифода мешаванд).