V současné době jsou stále populárnější návrhové vzory, které nám ukazují, jak řešit typické problémy při návrhu software v objektově orientovaných jazycích. Návrhové vzory jsou však jen konkrétní aplikace hlubších principů, na kterých by měl být objektově orientovaný návrh založen. Tento článek má za úkol čtenáře stručně seznámit s návrhovými principy SOLID, které formuloval Robert „Uncle Bob“ C. Martin.
Deméteřin zákon (Law of Demeter) je další z důležitých návrhových principů. Tento princip definuje omezení v tom, s jakými objekty bychom měli přímo komunikovat a s jakými ne. Při dodržování těchto doporučení je výsledný kód mnohem méně vzájemně provázaný a jeho udržování je mnohem jednodušší.
Návrhový princip DRY (Don’t Repeat Yourself) nám sděluje jednoduchou myšlenku: Neopakujte se! Patří k principům z kategorie „to je přece jasné“, ale bývá často aplikován nesprávně. Pokud je ale použit dobře a s rozmyslem, ve výsledku nám pomáhá vytvářet kvalitnější kód a ušetří práci při jeho údržbě.
Přidělování zodpovědností (kdo bude co dělat) a návrh jejich kooperace je důležitým a netriviálním krokem při návrhu software. Návrhové principy GRASP (General Responsibility Assignment Software Patterns), které sestavil Craig Larman, nám k tomu poskytují užitečná vodítka. V prvním díle se seznámíme se základními pojmy a probereme princip Protected variations.
V druhém díle o návrhových principech GRASP (General Responsibility Assignment Software Patterns) se budeme zabývat principem High cohesion – Vysoká soudržnost. Jde o hodnotící princip sloužící k porovnávání kvality různých zvažovaných možností návrhu.
V tomto díle o návrhových principech GRASP (General Responsibility Assignment Software Patterns) se budeme zabývat principem Low coupling – Slabá provázanost. Jde o další hodnotící princip sloužící k porovnávání různých zvažovaných možností návrhu, který doplňuje princip High cohesion – Vysoká soudržnost z minulého dílu o pohled z jiného úhlu.
V tomto díle o návrhových principech GRASP (General Responsibility Assignment Software Patterns) projdeme principy Polymorphism, Pure fabrication a Indirection, které se zabývají strukturními prvky architektury.
V tomto díle o návrhových principech GRASP (General Responsibility Assignment Software Patterns) se budeme zabývat principy Information Expert – Informační expert a Creator – Tvůrce, které představují základní principy při výběru konkrétních objektů pro přidělení zodpovědnosti podle GRASP.
V tomto díle o návrhových principech GRASP (General Responsibility Assignment Software Patterns) se budeme zabývat posledním principem Controller, který nám dává doporučení ohledně spolupráce uživatelského rozhraní a doménových objektů.
V závěrečném díle o návrhových principech GRASP (General Responsibility Assignment Software Patterns) si ukážeme několik modelových příkladů aplikace GRASP.