Како изградити поуздане објекте са фабричким функцијама у ЈаваСцрипт-у

Дисцовер Фунцтионал ЈаваСцрипт је проглашен једном од најбољих књига о функционалном програмирању од стране БоокАутхорити !

Предлажем да узмемо у обзир ове идеје за изградњу поузданих објеката у ЈаваСцрипт-у:

  • Поделите објекте на два дела: објекте података и објекте понашања
  • Учините објекте података непроменљивим
  • Изложите понашање и сакријте податке у објектима понашања
  • Изградите тестиране објекте понашања

Подаци вс објекти понашања

У основи постоје две врсте објеката у апликацији:

  • Објекти података - излагање података
  • Објекти понашања - изложите понашање и сакријте податке

Објекти података

Објекти података излажу податке. Користе се за структурирање и пренос података унутар апликације.

Узмимо случај примене листе обавеза.

Ево како објект података о обавезама, добијен са сервера, може изгледати:

{ id: 1, title: "This is a title", userId: 10, completed: false }

И овако може изгледати објект података који се користи за приказ информација у приказу:

{ id: 1, title: "This is a title", userName: "Cristi", completed: false };

Као што видите, оба објекта садрже само податке. Између њих постоји мала разлика: објект података за приказ има userNameуместо userId.

Објекти података су обични објекти, обично изграђени са објектним литералима.

Објекти понашања

Објекти понашања излажу методе и сакривају податке.

Објекти понашања делују на објекте података. Објекте података могу узимати као улазе или враћати објекте података.

Узећу случај TodoStoreпредмета. Одговорност објекта је чување и управљање списком задатака. Омогућава синхронизацију са сервером помоћу dataServiceобјекта.

Прочитајте функционалну архитектуру са Реацт-ом и Редук-ом и научите како да правите апликације у функционалном стилу.

Дисцовер Фунцтионал ЈаваСцрипт је проглашен једним однајбоље нове књиге о функционалном програмирању од БоокАутхорити !

За више информација о примени техника функционалног програмирања у Реацту погледајте Фунцтионал Реацт .

Можете ме пронаћи на Медиум-у и Твиттер-у.