0. Устойчивость к изменениям (Protected Variations) - как спроектировать систему, чтобы изменение одной ее части не влияло на другую?
1. Низкая связанность (Low Coupling)
2. Высокая целостность (High Cohesion)
3. Перенаправление (Indirection) и Концепция слоев (Layers) - как снизить связанность?
4. Контроллер (Controller) - как связать два слоя системы?
5. Полиморфизм (Polymorphism) - как изменять реализацию динамически?
6. Информационный эксперт (Information Expert) - кто должен выполнять те или иные опера