If something has more than, say, 5 parameters, it should be divided into components that have less.
- iMac – 4 variants
- Keyboard options in German Apple store: 12
- Windows 7 – 10+ versions (32/64 bit)
- CreateWindowEx – 12 parameters
- script.aculo.us’ Ajax.InPlaceEditor – 24 options
- RDoc – 40+ parameters
Less is more. Hierarchies, if sensibly applied, can manage complexity.
Think LEGO.