Простое правило - инкапсулировать сложные данные и многократно используемый код, а также игнорировать то, что не так. Это позволяет объединять сложные структуры данных с их манипулятивными методами для большей мобильности и гибкости. Например, список объектов базы данных с интеллектуальной сортировкой по типу свойства.
Код OO также запутывает то, что вам не нужно знать. Например, мне не нужно знать, какой у меня алгоритм сортировки, пока он не замедлит меня или я уже не программирую для высокопроизводительной среды.
Еще одна замечательная вещь в ОО-коде - это его полиморфизм, то есть способ использовать последующие типы для изменения действий, без того, чтобы программа не знала, как или не заботилась об этом. Примером является формат архива с несколькими типами списков файлов: список может иметь массив структур (записей или структур) внутри него, которые изменяются между типами списка, но наследуются от базового класса и сложность знания, какая базовая структура использовать уходит. Было бы довольно трудно справиться с этим без ориентации объекта, и, откровенно говоря, достаточно сложно управлять, поскольку это с ориентацией объекта.
ОО и MVC не решают ваши проблемы, если вы уже не знаете, как их решать, они просто дают вам более эффективные способы выстрелить себе в ногу - только в этот раз вы можете не знать, почему. Так что помните, что если это что-то, ОО не является «волшебной пулей» ... но помните, что это может быть волшебной пулей, учитывая правильную ситуацию и правильного программиста.