Ви б спробували переконати свого клієнта, що використання об'єктно-орієнтованого програмування набагато чистіше?
Я думаю, що вам потрібно більше вчити себе парадигмам програмування. Об'єктно-орієнтований запрограмований код не обов'язково є чистішим, а насправді він не є універсальним. Крім того, хороший об'єктно-орієнтований кодер знає, як зробити хорошу роботу, використовуючи процедурну / модульну (З функціональними та деклараційними парадигмами це трохи складніше, але хорошому програмісту не повинно бути надто складно - через читання та відрахування - до прийнятного FP / декларативного рішення.)
Ви майже ніколи не можете, повторюю, ви майже не можете добре розуміти, коли і як використовувати Орієнтацію на об'єкт, не маючи хорошого розуміння процедурного та модульного програмування. OO - це набагато більше, ніж просто декларування класів та ієрархій успадкування.
Або ви б спробували дотримуватися того, що він вимагав, і дайте йому шалений код?
Якщо ви не можете написати гарний код процедурно, я сумніваюся, що ви можете написати хороший код об'єктно-орієнтованим способом. Період. Я не намагаюся судити тут, але це потрібно стверджувати.
Об'єктна орієнтація - це розширення процедурного та модульного програмування. Об'єктно-орієнтована просто дає вам інструменти, які при належному використанні дають вам кращі механізми вирішення питань інкапсуляції, з'єднання, згуртованості та використання коду та повторного використання / розширення.
Але всі ці питання не притаманні та унікальні для ОО. Вони існують у процедурному / модульному коді (та в інших парадигмах з цього приводу.) Це тип питань складності, який, по суті, не залежить від парадигми. Якщо ви не можете впоратися з ними без OO клею, то навряд чи ви зможете з цим впоратися.
=========
Повертаючись до свого початкового питання, чи варто переконати свого клієнта. Це залежить. Як сказав плакат Шон Макміллан, якщо клієнт просто намагається мікро-керувати зусиллями з розробки певного порядку денного (читай, офісна політика), піти геть. Люди, які роблять ці диверсійні проекти, звинувачують когось іншого, або просувають певний порядок денний. Ви не хочете в цьому брати участь.
Інакше, можуть бути інші причини такої вимоги. Багато вбудованих магазинів, правильно чи неправильно, вирішують покласти чимало обмежень на те, що можна зробити з C ++ (наприклад, немає віртуальних методів, не є винятки.) Деколи це робиться у коліна. В інший час для цього є вагомі технічні причини.
Тому вам потрібно зрозуміти, чому клієнт хоче уникнути OO-коду. І якщо ви зможете припустити, що немає політичного порядку денного (немає червоних прапорів), тоді вам слід зробити професійну справу, яка полягає в тому, щоб просто зробити кодекс процедурно / модульно, і зробити це добре.
Насправді немає приводу для доставки шаленого коду, незалежно від парадигми програмування. Якщо ви не можете створити прийнятний код за допомогою однієї парадигми, ви, звичайно, не можете створити прийнятний код загалом.