twin твои доводы не объективны и смешны, ты тычешь в одну и туже строку и тд, как раз таки все объектно и получается, и описывается легко пока ты не опрверг нигде ООП , только попытки неудачные
а я еще глубже копну в проектирование по модели Domain Driven Design , где есть 2 понятия в архитектуре Логика домена и логика инфраструктуры
Логика домена это те самые коровки собачки и летучие лисы и то что мы с ними делаем и есть инфраструктура в виде кешей и бд роутеров и прочей нечисти
по сути соединение с бд это объект и у него есть 2 состояния соединен или нет
так же как у человека есть комфортно, тепло и жарко , притом порог каждого у него свой
но то что происходит с ним когда ему холодно или жарко типично потоизлияние или дрожание от холода
Есть человек это объект, идущий человек это объект в состоянии движения , где у движения есть свои характеристики типа
(new Human)->addCondition(new WalkCondition('10 meters', '5 meters per minute'));
все вот ооп, в твоем случае ты бы сделал какое то действие идти с методом человек и тд,
притом что состояние этого же человека может меняться потом он будет уставший человек и тд но это все состояние одного объекта