Controller
Požadavky na stystém vyřizuje oddělená kontrolní vrstva (např. HTTP requesty, uživatelská interakce)
Creator
Část B vytváří část A pokud je A její částí a má pro její vytvoření dostatek informací v opačném případě B závisí na A
High Cohesion
Jedna část (kus kódu) by se měla zaměřovat na jednu věc
Indirection
Prostředník může snížit vazby mezi 2 částmi systému a zvýšit tak jejich znovupoužitelnost
Information Expert
Zodpovědnost má ta část systému, která má všechny potřebné informace
Low Coupling
Snaha o co nejméně vazeb
Chytré rozdělení zodpovědnosti
Vyvarovat se cyklickým vazbám
Protected Variations
Stabilním rozhraním na klíčových místech aplikace se vyvarujeme rozbití aplikace změnami
Pure Fabrication
Oddělení "servisních" částí mimo primární funkci snižuje závislosti a zvyšuje soudružnost (např. samostatná validační vrstva)