您是否会说服客户使用面向对象的编程更清洁?
我认为您需要对编程范例进行更多的自我教育。面向对象的编程代码不一定是更干净的,实际上,它并不是通用的。同样,优秀的面向对象的编码人员知道如何使用过程/模块(通过功能和声明式范式来完成出色的工作,这会有点困难,但是对于优秀的程序员而言,通过阅读和演绎,应该不会太困难) -可接受的FP /声明式解决方案。)
我再说一遍,如果没有对过程和模块化编程的充分了解,您几乎不可能完全了解何时以及如何使用对象定向。OO不仅仅是声明类和继承层次结构。
还是您会尝试遵循他的要求并给他糟糕的代码?
如果您不能在程序上编写好的代码,我怀疑您是否可以以面向对象的方式编写好的代码。期。我不是要在这里进行判断,但是必须断言。
面向对象是过程和模块化编程的扩展。面向对象只是为您提供了工具,这些工具在适当使用时可以为您提供更好的机制来处理封装,耦合,内聚和代码重用/可扩展性问题。
但是所有这些问题并不是面向对象的固有问题。它们存在于过程/模块代码中(以及与此相关的其他范式中。)这是复杂性问题的类型,其本质上与范式无关。如果没有OO胶就无法处理它们,那么您不太可能用OO胶处理它们。
=========
回到您最初的问题,即是否要说服您的客户。这取决于。正如海报的肖恩·麦克米兰(Sean McMillan)所说,如果客户只是试图对某个议程(阅读,办公室政治)的发展工作进行微观管理,那就走开。从事破坏活动的人会指责别人或推动特定的议程。您不想参与其中。
呵呵,这种要求可能还有其他原因。许多嵌入式商店,无论对还是错,都选择对可以使用C ++进行的操作施加很多限制(例如,没有虚拟方法,也没有例外。)有时,它以令人讨厌的方式完成。在其他时候,这样做有充分的技术理由。
因此,您需要了解为什么客户希望避免使用OO代码。而且,如果您可以推测没有政治议程(没有危险的信号),那么您应该做专业的事情,那就是简单地在程序上/模块化上完成代码,并做好它。
与编程范例无关,确实没有借口提供糟糕的代码。如果您无法使用一种范例来产生可接受的代码,那么您肯定会普遍无法产生可接受的代码。