Модули должны быть открыты для расширения, но закрыты для модификации. Это означает, что можно добавить новую функциональность, не меняя существующий код. Достигается через использование абстракций (интерфейсов, протоколов, абстрактных классов) и наследования.
Пример: есть протокол PaymentProcessor и реализации для разных платежных систем. Новая платежная система добавляется без изменения существующих реализаций.
swift