Oddělení obav
internetový protokol stackEdit
oddělení obav je zásadní pro návrh internetu. V sadě internetových protokolů bylo vynaloženo velké úsilí na oddělení obav do dobře definovaných vrstev. To umožňuje návrhářům protokolů soustředit se na obavy v jedné vrstvě a ignorovat ostatní vrstvy. Aplikační Vrstva protokolu SMTP, například, je starost o všechny podrobnosti o provádění e-mail relace přes spolehlivé transportní služby (obvykle TCP), ale ani v nejmenším obavy o tom, jak dopravní služby je, že služby spolehlivé. Stejně tak TCP není znepokojen směrováním datových paketů, které jsou zpracovávány na internetové vrstvě.
HTML, CSS, JavaScriptEdit
HyperText Markup Language (HTML), Kaskádové styly (CSS) a JavaScript (JS) jsou komplementární jazyky používané v vývoj webových stránek a webových stránek. HTML se používá hlavně pro organizaci obsahu webových stránek, CSS se používá pro definici stylu prezentace obsahu a JS definuje, jak obsah interaguje a chová se s uživatelem. Historicky tomu tak nebylo: před zavedením CSS vykonával HTML obě povinnosti definování sémantiky a stylu.
Předmět-orientované programmingEdit
Předmět-orientované programování umožňuje oddělené obavy je třeba řešit jako samostatný software, konstrukce, každý na rovnoprávném základě s ostatními. Každý problém poskytuje vlastní třídy-struktura, do které se objekty společné, jsou organizovány, a přispívá stát a metod na kompozitní výsledek, kde řežou jedna přes druhou. Pravidla korespondence popisují, jak třídy a metody v různých obavách spolu souvisejí v bodech, kde interagují, umožňující odvození složeného chování pro metodu z několika obav. Multi-dimenzionální Separace Obavy umožňuje analýzu a složení týká manipulovat jako multi-dimenzionální „matrix“, ve kterém každý problém poskytuje dimenze, v nichž se různé body na výběr jsou ve výčtu, s buňkami matice obsazený příslušný software artefakty.
Aspect-oriented programmingEdit
Aspect-oriented programming umožňuje průřezové obavy, které mají být řešeny jako primární obavy. Například většina programů vyžaduje určitou formu zabezpečení a protokolování. Bezpečnost a protokolování jsou často druhotné obavy, zatímco primární zájem je často na dosažení obchodních cílů. Při navrhování programu však musí být jeho bezpečnost zabudována do návrhu od začátku, místo aby byla považována za sekundární problém. Použití bezpečnostní potom často za následek nedostatečné bezpečnostní model, který ponechává příliš mnoho mezer pro budoucí útoky. To lze vyřešit pomocí aspektově orientovaného programování. Například aspekt může být napsán prosadit, aby volání na určité API jsou vždy zaznamenány, nebo že chyby jsou vždy zaznamenána, když je vyvolána výjimka, bez ohledu na to, zda program je procedurální kód zpracovává výjimky nebo šíří.
úrovně analýzy v umělé inteligenciedit
v kognitivní vědě a umělé inteligenci je běžné odkazovat na úrovně analýzy Davida Marra. V daném okamžiku, výzkumník může být zaměření na (1) Co nějaký aspekt inteligence potřebuje pro výpočet, (2) jaký algoritmus používá, nebo (3) Jak tento algoritmus je implementován v hardwaru. Toto oddělení obav je podobné rozlišení rozhraní/implementace v softwarovém a hardwarovém inženýrství.
normalizované systémyEditovat
v normalizovaných systémech oddělení obav je jedním ze čtyř hlavních principů. Dodržování tohoto principu je jedním z nástrojů, které pomáhají snižovat kombinatorické efekty, které se postupem času zavádějí do udržovaného softwaru. V normalizovaných systémech je oddělení obav aktivně podporováno nástroji.
SoC přes částečné třídyedit
oddělení obav lze implementovat a vynucovat pomocí dílčích tříd.
SoC přes dílčí třídy v RubyEdit
bear_hunting.rb
class Bear def hunt forest.select(&:food?) endend
bear_eating.rb