Я недавно пытался узнать об основных принципах дизайна, и OCP меня немного смутил. Имеет смысл, что когда происходит изменение, предпочтительнее расширять систему, а не изменять существующие и рабочие части. Но разве это не является скорее принципом того, как внедрять изменения в системе, а не как ее проектировать? Разве не весь код в основном открыт для расширения с помощью подкласса? И как можно закрыть какой-либо код для модификации - разве это не зависит от того, как человек, осуществляющий изменение, хочет его использовать?Как вы пишете код, соответствующий OCP?
Возможно, пример кода, который не следует за OCP и как именно он нарушил принцип, будет самым полезным для меня, чтобы понять это.
Благодаря
Хех. Я никогда не слышал, чтобы это называлось «OCP» раньше. Это звучит как рэп-песня: «Ваша программа с O.C.P.?». – Ken