Одной из наших целей должно быть построение компонентов, которые можно изменять или перемещать с минимальным воздействием на другие компоненты. Если каждое изменение, которое вы осуществляете над одним компонентом, влечет за собой необходимость изменений в других местах основного кода, то задача разработки быстро превратится в спираль создания и устранения ошибок. Конечно, ортогональность - это, как правило, только мечта, недостижимая цель. У элементов в системе должны быть встроенные ссьmки на другие элементы. Но для минимизации этого можно использовать различные стратегии. Мы видели различные примеры полиморфизма. в которых клиентский код понимает интерфейс компонента, но сам реальный компонент может меняться во время выполнения программы