Без нарушения 1 (оба контекста используют все публичные):

Без нарушения 2 (D приватный — нет внешних вызовов):

Без нарушения 3 (три контекста, Z использует только C — D приватный):

Нарушение 1 (контекст 3 использует D, но не C):

Нарушение 2 (контекст 1 использует C, но не D):
