Sdílet prostřednictvím


Použitelnost funkční transformace (LINQ to XML)

Čistě funkční transformace jsou použitelné v nejrůznějších situacích.

Přístup funkční transformace je ideální pro dotazování a manipulaci se strukturovanými daty; proto se dobře hodí pro technologie LINQ. Funkční transformace má ale mnohem širší použitelnost než použití s LINQ. Každý proces, ve kterém je hlavním zaměřením na transformaci dat z jednoho formuláře do druhého, by se pravděpodobně měl považovat za kandidáta na funkční transformaci.

Tento přístup se vztahuje na řadu problémů, které se nemusí na první pohled objevit jako kandidát. Při použití ve spojení s LINQ nebo odděleně by se funkční transformace měla zvážit pro následující oblasti:

  • Dokumenty založené na jazyce XML Dobře vytvořená data libovolného dialektu XML je možné snadno manipulovat prostřednictvím funkční transformace. Další informace naleznete v tématu Funkční transformace XML.
  • Jiné formáty strukturovaných souborů. Od Windows.ini souborů po dokumenty ve formátu prostého textu má většina souborů určitou strukturu, která se hodí k analýze a transformaci.
  • Protokoly streamování dat. Kódování dat do komunikačních protokolů a jejich dekódování je často reprezentováno jednoduchou funkční transformací.
  • RdBMS a data OODBMS. Relační a objektově orientované databáze, stejně jako XML, jsou široce používané strukturované zdroje dat.
  • Matematické, statistické a vědecké řešení. Tato pole obvykle manipulují s velkými datovými sadami, aby pomohla uživateli při vizualizaci, odhadu nebo skutečném řešení nesouvisejích problémů.

Jak je popsáno v refaktoringu na čisté funkce, použití čistých funkcí je příkladem funkčního programování. Kromě okamžitých výhod poskytuje použití čistých funkcí cenné zkušenosti při úvahách o problémech z hlediska funkční transformace. Tento přístup může mít také velký dopad na návrh programu a třídy. To platí zejména v případě, že se problém hodí k řešení transformace dat, jak je popsáno výše.

I když jsou nad rámec tohoto kurzu, návrhy, které jsou ovlivněny perspektivou funkční transformace, mají tendenci zaměřit se na procesy více než na objekty jako aktéři a výsledné řešení se obvykle implementuje jako řada rozsáhlých transformací, nikoli na změny stavu jednotlivých objektů.

Znovu si pamatujte, že jazyk C# a Visual Basic podporují imperativní i funkční přístupy, takže nejlepší návrh aplikace může zahrnovat prvky obou.

Viz také