Jiste, spousta lidi si tu rekne, co zase ten delfin plodi za nesmysly, ale to jsem zazil.
Tak ja popisu, co jsem zazil s tupe aplikovanou kompozici, kterou mel na svedomi taky mlady programator - mozna, ze takove ptakoviny skutecne nekde uci - budu se muset preptat

- dostal na hrb soft pro pomerne slozite stroje, kde jeho customizaci resil interface
- na zacatku mel par zakazniku a par vlastnosti
- ale casem se mu pocet customizaci rozrostl na 100+ a pocet vlastnosti na rozhrani na stovky
- novou customizaci vytvarel Copy&Paste z nejake nejpodobnejsi
- novou vlastnost pridaval zpetne do 100+ implementaci intreface s tim, ze vsude byla 'prazdna' nebo implicitni
krome toho jednoho prave pridaneho zakaznika...
- kdyz chtel nejakou vlastnost zmenit, musel prolezt 100+ interface...
Vyhodu to melo jedinou, ze kdyz nekde neco posr*l, tak to posr*l jen pro tu danou customaci, coz byla zrejme jeho primarni motivace k takovemu masochismu.
No a pak prisel pozadavek zmenit kompletne vsude ksicht podle navrhu graficky vcetne vzhledu gridu apod., coz mj. znamenalo rozsirit
pocet vlastnosti na rozhrani, protoze 2 zakaznici chteli treba vlastni font u konkretniho textu, vsem ostatnim 100+ to bylo jedno
- samozrejme, ze prvnim krokem byl refactoring a vytvoreni spolecnehop rozhrani a jeho implementace
- druhym krokem rozsireni spolecneho rozhrani o nove vlastnosti
- tretim krokem bylo odvozeni rozhrani od toho spolecneho a vyhazeni vsech metod z rozhrani tak, aby implementovala jen to, co bylo pro danou customizaci
A bylo po onanyji a stal se z toho udrzovatelny soft
