Непонятный абзац в книге

117
05 сентября 2019, 14:20

В книге "PHP. Объекты, шаблоны и методики программирования" (4-e издание), на 154-й странице есть следующий абзац:

Нежесткая связь и высокая связность не являются автоматическими признаками в контексте класса. В конце концов, мы можем включить целый пример процедурного кода в один "неправильный" класс. Как же нам достичь необходимого баланса в коде? Обычно я начинаю с рассмотрения классов, которые должны присутствовать в моей системе.

Что здесь значит "не являются автоматическими признаками в контексте класса? И о каком балансе речь?

Answer 1

Мастер слова имел ввиду, что используя такие абстракции ООП как класс, вы не получаете качественный код автоматически. А в предложении о балансе речь о балансе между достоинствами и недостатками наличия состояния.

Главный недостаток процедурного программирования в том, что в нём очень много состояния. Вы выполняете процедуру и ожидаете, что состояние изменится (глобальные переменные поменяли значения, в stdout вывелся какой-то текст, в бд обновились ячейки таблиц). Концепция ООП предлагает изолировать состояние внутри объекта, однако и таким состоянием можно злоупотребить (например раскрывая его через геттеры). Но отказавшись от состояния вовсе, вы окажетесь в мире функционального программирования, которое часто отпугивает новичков своей чистотой.

Рассуждая о балансе, автор как бы спрашивает нас: "Так как же писать гибкий и в то же время понятный и легкоподдерживаемый код?".

Answer 2

Я думаю, тут имеется в виду правильный дизайн. "Нежесткая связь и высокая связность не являются автоматическими признаками хорошего дизайна".

READ ALSO
Как привести URL к нижнему регистру?

Как привести URL к нижнему регистру?

К примеру, захожу на адрес:

114
Добавить строки в таблице бд в зависимости массива

Добавить строки в таблице бд в зависимости массива

Подскажите пожалуйста, есть n-ое количество inputОно всегда разное, может быть 1, может быть 20

124
REST API - авторизация/регистрация через соцсети и по email/password

REST API - авторизация/регистрация через соцсети и по email/password

Требуется сделать регистрацию+авторизацию в мобильном приложении через соцсети или через емейл на удалённом REST API сервере (я отвечаю именно...

112