¿Tratarías de persuadir a tu cliente de que usar programación orientada a objetos es mucho más limpio?
Creo que necesitas educarte más sobre paradigmas de programación. El código programado orientado a objetos no es necesariamente más limpio y, de hecho, no es de aplicación universal. Además, un buen codificador orientado a objetos sabe cómo hacer un buen trabajo utilizando un procedimiento / modular (con paradigmas funcionales y declarativos, es un poco más difícil, pero no debería ser demasiado difícil para un buen programador llegar, a través de la lectura y la deducción - a una solución aceptable FP / declarativa.)
Casi nunca puedes, repito, casi no puedes tener una buena comprensión de cuándo y cómo usar la Orientación de Objetos sin tener una buena comprensión de la programación modular y de procedimientos. OO es mucho más que declarar clases y jerarquías de herencia.
¿O tratarías de seguir lo que él requería y darle un código malo?
Si no puede escribir un buen código de procedimiento, dudo que pueda escribir un buen código orientado a objetos. Período. No estoy tratando de juzgar aquí, pero esto tiene que ser afirmado.
La orientación a objetos es una extensión de la programación procesal y modular. La Orientación de Objetos simplemente le brinda herramientas que, cuando se usan apropiadamente, le brindan mejores mecanismos para tratar los problemas de encapsulación, acoplamiento, cohesión y reutilización de código / extensibilidad.
Pero todos esos problemas no son inherentes y exclusivos de OO. Existen en el código de procedimiento / modular (y en otros paradigmas para el caso). Este es el tipo de problemas de complejidad que, en esencia, es independiente del paradigma. Si no puede manejarlos sin pegamento OO, entonces es poco probable que pueda manejarlos con él.
=========
Volviendo a su pregunta original, sobre si tratar de persuadir a su cliente. Depende. Como dijo el cartel Sean McMillan, si el cliente simplemente está tratando de microgestionar el esfuerzo de desarrollo para alguna agenda (leer, política de la oficina), aléjese. Las personas que hacen ese sabotaje proyectan culpar a alguien más, o empujar una agenda particular. No quieres involucrarte en eso.
OTH, puede haber otras razones para tal requisito. Muchas tiendas integradas, para bien o para mal, optan por poner muchas restricciones sobre lo que puede hacer con C ++ (sin métodos virtuales, sin excepciones, por ejemplo). Algunas veces se hace de una manera increíble. En otras ocasiones, existen razones técnicas válidas para hacerlo.
Por lo tanto, debe comprender por qué el cliente quiere evitar el código OO. Y si puede suponer que no hay una agenda política (no hay señales de alerta), entonces debe hacer lo profesional, que es simplemente hacer el código procesal / modular, y hacer un buen trabajo al respecto.
Realmente no hay excusa para entregar código malo, independientemente del paradigma de programación. Si no puede producir código aceptable con un paradigma, ciertamente no puede producir código aceptable en general.