Často to používám z toho důvodu, abych skryl implementrační detaily v hlavičkách. Například pokud třída potřebuje nějaké další třídy, které nejsou potřeba pro ovládání té třídy (jsou potřeba jen pro její konstrukci), pak používám interface + implementace + továrnu.
interface definuje funkce, kterým lze objekt ovládat, implementace dědí interface a obsahuje vše, co je potřeba k zajištění činnosti objektu a továrna se stará o to, aby se dal objekt instanciovat bez nutnosti mít naincludované všechny definice pro přeložení třídy. |